2013-01-07 4 views
0

아래 코드를 실행했지만 그 결과는 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 - 

당신은 당신의 문자열의 중간에 ^$ 문자를했다. 그것들은 일치시킬 문자열의 시작과 끝을 각각 나타냅니다. 문자열의 시작/끝은 분명히 문자열의 중간에있을 수 없습니다 ;-)