为了账号安全,请及时绑定邮箱和手机立即绑定

检测并替换不成对的 Markdown 符号,而不更改成对的符号

检测并替换不成对的 Markdown 符号,而不更改成对的符号

翻过高山走不出你 2023-07-19 10:58:48
我有这个Hello \**how are you\**? I'm fine*需要得到这个Hello *how are you*? I'm fine\*我可以得到Hello *how are you*? I'm fine*但后来我迷路了,因为s.replace("*', "\*")这不是一个选择基本上问题是匹配的(配对的) * 需要用 * 替换,而未配对的 * 需要转义。
查看完整描述

2 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

基本思想是将字符串拆分为单词,然后找出哪些单词具有未配对的“*”。


String text1 = "*This* is **my** text*";

String[] words = text1.split(" ");

for(int i=0; i<words.length; i++){

    int count = words[i].length() - words[i].replace("*", "").length(); // count the number of '*'

    if(count%2 != 0){ // if it's not paired we can replace with '\*'

        words[i] = words[i].replace("*", "\\*");

    }

}

System.out.println(String.join(" ", words));


Which prints out: *This* is **my** text\*


查看完整回答
反对 回复 2023-07-19
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

有人帮我解决了这个问题:


String text1 = "*This is **my** text* ";

System.out.println(text1.replaceAll("(?<=[^*\\\\]|\\A)[*](?=[^*\\\\]|\\z)", "\\\\*"));

打印\*This is **my** text\*


查看完整回答
反对 回复 2023-07-19
  • 2 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信