我有这个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\*
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
有人帮我解决了这个问题:
String text1 = "*This is **my** text* ";
System.out.println(text1.replaceAll("(?<=[^*\\\\]|\\A)[*](?=[^*\\\\]|\\z)", "\\\\*"));
打印\*This is **my** text\*
添加回答
举报
0/150
提交
取消