我试图在文件出现时替换它,除非它包含在字符串中:
所以我应该替换它
The test in this line consists in ...
但不应该匹配:
The test "in this line" consist in ...
这就是我正在尝试的:
line.replaceAll( "\\s+this\\s+", " that ")
但它失败了这个场景所以我尝试使用:
line.replaceAll( "[^\"]\\s+this\\s+", " that ")
但也不起作用.
任何帮助,将不胜感激
解决方法:
这似乎有效(据我所知,从提供的示例中了解您的要求):
(?!.*\s+this\s+.*\")\s+this\s+
http://rubular.com/r/jZvR4XEbRf
您可能需要调整java的转义.
实际上这有点好一点:
(?!\".*\s+this\s+)(?!\s+this\s+.*\")\s+this\s+