我有一个字符串: testing<b>s<b>tringwit<b>h</b>nomean<b>s</b>ing
我想用其他字符序列替换字符 s 假设:<b>X</b>
但我希望字符序列 s 保持不变,即正则表达式不应将字符 s 更新为前一个字符“<”。
我用的是JAVA代码:
String str = testing<b>s<b>tringwit<b>h</b>nomean<b>s</b>ing;
str = str.replace("s[^<]", "<b>X</b>");
问题是正则表达式会匹配 2 个字符,s 和后面的字符(如果它不是“>”)并且 Sting.replace 会替换这两个字符。我只想替换 s 而不是以下字符。
如有任何帮助,我们将不胜感激。因为我有很多这样的替换,所以我不想使用循环来匹配每个字符并按顺序更新它。
最佳答案
还有其他方法,但是您可以,例如,捕获第二个字符并将其放回去:
str = str.replaceAll("s([^<])", "<b>X\\1</b>");
关于java - 更新角色需要正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18775264/