如何匹配Java中字符串中的特定输入?

时间:2015-07-30 07:37:26

标签: java regex eclipse

我在这行代码中使用正则表达式:

if (line.matches("^.*\b(" + incomingMachineIP + ")\b.*$"))

因此,假设以下输入:

incomingMachineIp = "10.10.10.10"

line = "abcde=10.10.10.10abcedf"

我希望if条件返回true,这就是我尝试使用上面的正则表达式,但是仍然返回false,即使在字符串(行)中找到incomingMachineIp的值

任何帮助如何解决这个问题将不胜感激。

3 个答案:

答案 0 :(得分:2)

在您的示例中,您可以简单地使用line.contains(incomingMachineIP),而不必处理正则表达式模式。

答案 1 :(得分:1)

您需要再次撤消反斜杠,并且还需要删除第二个\b或替换为\B,因为最后0之间不存在单词边界和a

字母
if(line.matches(".*\\b" + Pattern.quote(incomingMachineIP) + ".*"))

由于您使用匹配方法,因此不需要锚点。

答案 2 :(得分:1)

使用实时Regex Console来测试您的表达式,直到您使用它为止。在使用java中的表达式之前,请记住用双反斜杠字符“\\”替换任何单个字符反斜杠“\”!