我有这个
Hello \**how are you\**? I'm fine*
需要得到这个
Hello *how are you*? I'm fine\*
我可以得到
Hello *how are you*? I'm fine*
但是后来我迷路了,因为s.replace("*', "\*")
是一个选择
基本上,问题是匹配的(配对)*需要替换为*,而未配对的*需要转义。
答案 0 :(得分:1)
基本思想是将字符串拆分成单词,然后找出哪些单词具有未配对的“ *”。
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\*
答案 1 :(得分:0)
有人帮助我解决了这个问题
String text1 = "*This is **my** text* ";
System.out.println(text1.replaceAll("(?<=[^*\\\\]|\\A)[*](?=[^*\\\\]|\\z)", "\\\\*"));
显示\*This is **my** text\*