我正在使用 java replaceAll() 方法来替换字符串中的匹配词。在我的例子中,如果这个词紧挨着逗号 (,) 句号 (.) 或类似的任何其他内容,则这个词不会被替换。
例子: 和。 和, 和; 和(
这是代码:
body = body.replaceAll("(?i) "+knownWord + " ", replaceWord);
谁能给我一个能够识别这个字符串中所有单词的正则表达式?
最佳答案
这会按照您的指定执行:
(?<![.,])\b(\w+)\b(?![.,])
它会查找(并捕获)不在逗号或句号旁边的单词。只需将您喜欢的任何标点符号添加到字符类中,例如 [.,?(]
.
这是为 Java 字符串转义的正则表达式:"(?<![.,])\\b(\\w+)\\b(?![.,])"
至于忽略大小写,只需传递 CASE_INSENSITIVE
标记到您的 Pattern 对象,例如用
Pattern p = Pattern.compile(theAbovePattern, Pattern.CASE_INSENSITIVE);
关于java - 替换java中的所有单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22103159/