2013-01-07 3 views
0

Я выполнил приведенный ниже код, но его результат неверен. Является ли моя модель правильной? Что здесь не так? Если я ошибаюсь, исправьте меня, потому что я застрял на этом.Соответствие шаблону Regex дает false

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 - 

Вы были ^ и $ символы в середине вашей строки. Они представляют начало и конец строки для соответствия, соответственно. Начало/конец строки не может быть посреди строки, очевидно ;-)

Смежные вопросы