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

我有这个


Hello \**how are you\**? I'm fine*

需要得到这个


Hello *how are you*? I'm fine\*

我可以得到


Hello *how are you*? I'm fine*

但后来我迷路了,因为s.replace("*', "\*")这不是一个选择


基本上问题是匹配的(配对的) * 需要用 * 替换,而未配对的 * 需要转义。


翻过高山走不出你
浏览 107回答 2
2回答

慕婉清6462132

基本思想是将字符串拆分为单词,然后找出哪些单词具有未配对的“*”。String text1 = "*This* is **my** text*";String[] words = text1.split(" ");for(int i=0; i<words.length; i++){&nbsp; &nbsp; int count = words[i].length() - words[i].replace("*", "").length(); // count the number of '*'&nbsp; &nbsp; if(count%2 != 0){ // if it's not paired we can replace with '\*'&nbsp; &nbsp; &nbsp; &nbsp; words[i] = words[i].replace("*", "\\*");&nbsp; &nbsp; }}System.out.println(String.join(" ", words));Which prints out: *This* is **my** text\*

慕尼黑的夜晚无繁华

有人帮我解决了这个问题:String text1 = "*This is **my** text* ";System.out.println(text1.replaceAll("(?<=[^*\\\\]|\\A)[*](?=[^*\\\\]|\\z)", "\\\\*"));打印\*This is **my** text\*
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java