我在这行代码中使用正则表达式:
if (line.matches("^.*\b(" + incomingMachineIP + ")\b.*$"))
因此,假设以下输入:
incomingMachineIp = "10.10.10.10"
line = "abcde=10.10.10.10abcedf"
我希望if条件返回true,这就是我尝试使用上面的正则表达式,但是仍然返回false,即使在字符串(行)中找到incomingMachineIp的值
任何帮助如何解决这个问题将不胜感激。
答案 0 :(得分:2)
在您的示例中,您可以简单地使用line.contains(incomingMachineIP)
,而不必处理正则表达式模式。
答案 1 :(得分:1)
您需要再次撤消反斜杠,并且还需要删除第二个\b
或替换为\B
,因为最后0
之间不存在单词边界和a
if(line.matches(".*\\b" + Pattern.quote(incomingMachineIP) + ".*"))
由于您使用匹配方法,因此不需要锚点。
答案 2 :(得分:1)
使用实时Regex Console来测试您的表达式,直到您使用它为止。在使用java中的表达式之前,请记住用双反斜杠字符“\\”替换任何单个字符反斜杠“\”!