【问题标题】:Regex pattern matching yields false正则表达式模式匹配产生错误
【发布时间】:2013-01-07 14:53:49
【问题描述】:

我已经执行了下面的代码,但它的结果是假的。我的模式是否正确?这里有什么问题?如果我错了,请纠正我,因为我坚持这一点。

String name = "] RESPONSE GET - 192.168.200.121 -";
string pat = "] RESPONSE (GET|GETNEXT|GETBULK|SET|TRAP) - ^192\\.168\\.200\\.121$ -";
Pattern p = Pattern.compile(pat);
Matcher m = p.matcher(name);
System.out.println(m.find());

【问题讨论】:

  • 你有 ^$ 字符 - 分别表示字符串的开头和字符串的结尾 - 在你的模式中间。那永远行不通。您实际上想用这里的 IP 地址做什么?
  • 怎么能以] RESPONSE...开头,又以192\\.开头?删除 ^$

标签: java regex


【解决方案1】:

这行得通:

] RESPONSE (GET|GETNEXT|GETBULK|SET|TRAP) - 192\\.168\\.200\\.121 -

您的字符串中间有 ^$ 字符。它们分别代表要匹配的字符串的开始和结束。字符串的开头/结尾不能在字符串的中间,很明显;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多