java - 替换java中的所有单词

标签 java regex word-boundary

我正在使用 java replaceAll() 方法来替换字符串中的匹配词。在我的例子中,如果这个词紧挨着逗号 (,) 句号 (.) 或类似的任何其他内容,则这个词不会被替换。

例子: 和。 和, 和; 和(

这是代码:

body = body.replaceAll("(?i) "+knownWord + " ", replaceWord);

谁能给我一个能够识别这个字符串中所有单词的正则表达式?

最佳答案

这会按照您的指定执行:

(?<![.,])\b(\w+)\b(?![.,])

Regular expression visualization

Debuggex Demo

它会查找(并捕获)不在逗号或句号旁边的单词。只需将您喜欢的任何标点符号添加到字符类中,例如 [.,?(] .

这是为 Java 字符串转义的正则表达式:"(?<![.,])\\b(\\w+)\\b(?![.,])"

至于忽略大小写,只需传递 CASE_INSENSITIVE 标记到您的 Pattern 对象,例如用

Pattern p = Pattern.compile(theAbovePattern, Pattern.CASE_INSENSITIVE);

关于java - 替换java中的所有单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22103159/

相关文章:

java - Java 上的 Dijkstra : Getting Interesting Results Using a Fibonacci Heap vs. PriorityQueue

javascript - 正则表达式返回带有下划线组的未定义

Python 正则表达式单词边界出现意外结果

PHP Regex Word边界排除下划线_

javascript - 匹配任何非单词字符(不包括变音符号)

java - 如何对多对多关系执行存在查询

java - 如何衡量多线程应用程序中的代码性能?

java - 为什么 Selenium 在点 (.) 字符后面附加一个反斜杠,对于其中包含 (.) 的 ID 属性的值产生 (\.)

regex - RegExp_提取Google Data Studio中第一个点之前的所有内容

python - 马赫制表符或行首 8 个空格