我正在尝试更换" is" "不是"在字符串中,但有一个例外,它不应该替换"是"这是其他词。
实施例
"This is an ant" --> "This is not an ant" [CORRECT]
"This is an ant" --> "This not is not an ant" [INCORRECT]
到目前为止,我所做的是
String result = str.replaceAll("([^a-zA-Z0-9])is([^a-zA-Z0-9])","$1is not$2");
result = result.replaceAll("^is([^a-zA-Z0-9])","is not$1");
result = result.replaceAll("([^a-zA-Z0-9])is$","$1is not");
result = result.replaceAll("^is$","is not");
但我认为只有一个正则表达式是可能的,但我无法弄明白。 有可能吗?
答案 0 :(得分:5)
答案 1 :(得分:2)
result = str.replaceAll("\\bis\\b", "is not");
\b
匹配字边界。
[编辑]:感谢@Falsetru关于逃跑的通知 - 当然你是对的!