正则表达式并不涵盖所有情况

时间:2015-03-10 19:28:22

标签: java regex

我有以下问题需要解决:

  

编写一个接受字符串作为输入的Java程序。使用   以下方法:

public static String notReplace(String str)
     

此方法必须返回字符串的每个外观   "是"已被替换为"不是"。字符串"是"不应该是   紧接着或之后是一封信。

     例如:"是测试"应改为"不是测试"。

     

"这是对的"应改为"这不对#34;。

以下是我在代码中使用的正则表达式:

"(\\W)*(is)(\\W)*|^(is)(?!\\w)"

如果我输入"是",则更改为"不是"正如所料。 但是,它并没有覆盖"这是正确的"。它给了我"这不是不对的"。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以使用:

String repl = str.replaceAll("(?<![a-zA-Z])is(?![a-zA-Z])", "is not");

RegEx Demo