2013-01-07 51 views
0

我已经执行了下面的代码,但其结果是错误的。我的模式是正确的吗?这里有什么问题?如果我错了,请纠正我,因为我坚持这一点。正则表达式匹配产生假

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()); 
+4

您有'^'和'$'字符 - 分别指示字符串的开始和字符串的结尾 - 在中间你的模式。这永远不会起作用。你究竟在做什么这里的IP地址? –

+1

它怎么可能以'] RESPONSE ...开头,并且也以'192 \\。'开头?删除'^'和'$' – Alex

回答

3

这工作:

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

你在你的字符串中间有^$字符。这些分别表示要匹配的字符串的开始和结束。字符串的开始/结尾不能在字符串的中间,显然;-)