java - 如何使用 String 的 replaceAll 在某些字符前面不替换

标签 java regex string replaceall word-boundary

我需要替换文本中的一些词,但我需要在替换策略中加入条件,如下所示:

我想用word2替换word1:

String word1 = "word1";
String word2 = "word2";

但是如果 word1 前面有 word3,我不想替换 word1,它是:

String word3 = "word3."; //with the dot at the ending

也就是说,如果文本是 word3.word1 我不想碰它。 但我似乎无法使用 StringreplaceAll 方法处理单词边界

编辑:

而且如果 word1 具有前缀或后缀“-”字符,即 -word1word1- 我也不想更改-word1-

任何帮助都将不胜感激。

最佳答案

使用负后视的正则表达式:(?<!word3\\.)word1

关于java - 如何使用 String 的 replaceAll 在某些字符前面不替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9803285/

相关文章:

java - SMTP邮件发送失败

java - 使用 Junit 测试 Controller ?

java - 判断字符串是否包含奇数个引号

javascript - 用于在显示文本之前替换网页和 Facebook 帖子中的文本的 Chrome 扩展

python - 如何从 Python 中的原始输入中提取某些数字?

string - Swift - 在字符串中的多个位置查找字符

Python Pyparsing : Capture comma-separated list inside parentheses ignoring inner parentheses

java - LibGDX + Box2D : Object Positioning

javascript - 使用正则表达式获取 div 中的部分类名称和文本

javascript - 使用纯javascript将一个字符串分成两个