java - 更新角色需要正则表达式

标签 java regex

我有一个字符串: 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/

相关文章:

java - 如何使用 Java 从具有多个 namespace 的 XML 中获取特定节点?

java - 在java中嵌入jape规则(Gate)

java - JSP:在response.setHeader中传递特殊字符?

正则表达式检测连续字符

javascript - 匹配一个序列,除非它前面有另一个带有正则表达式的序列(Javascript)

regex - [:alnum:] POSIX Character Class under Oracle regular expresssion 中不接受“1A”

java - windows8安装openfire出错

java - 打印树程序

Java 正则表达式不适用于第二行中的输入字符串

c# - 正则表达式替换内部