2012-05-05 2 views
0

에서 하위 문자열 찾을 수없는 이유는이 내 코드입니다 : 내 정규식 입력 데이터

Pattern p = Pattern.compile(":\\s(.+)\\s[cfs]"); 
Matcher m1 = p.matcher("Seat 9: -FACERAPE- folded before Flop"); 
String name = null; 
while(m1.find()){ 
    name = m1.group(1); 
} 
System.out.println(name); 

내가이 정규식 패턴 here을 시도하고이 작동하지만 내 IDE에서 작동하지 않습니다. JDK 1.6으로 Eclipse를 사용한다. 또한 나의 정규식은 다음 예제와 함께 작동합니다. 좌석 7 : Goldball31이 Flop, 좌석 4 : < * {{{> < (3.09)}을 수집하기 전에 접 힙니다. 당신이 보았 듯이 문제는 하이픈이지만 문제가 발생하지 않았습니다.
아 미안 그것은 내가 아무것도 잘못 표시되지 않습니다 "널 (null)"

+1

귀하의 코드 인쇄를'-FACERAPE - '. 이제 잘못 된 점을 설명하십시오. –

+0

내 코드는 "null"을 출력하고 nullpointerexception을 생성합니다. – user1346834

+0

글쎄 그 코드를 보여주지 않는 이유는 무엇입니까? 이 코드는'-FACERAPE-'를 출력합니다. –

답변

0

를 인쇄 잊지 있지만, 정규 표현식은 다음과 같아야합니다

:\\s(.+?)\\s[cfs] 

또는

:\\s(\\S+)\\s[cfs] 
+0

hm 메모장에 Java 코드를 작성하려고했는데 작동합니다. 닉네임은 여러 개의 공백을 포함 할 수 있습니다.) 도움을 주셔서 감사합니다. Eclipse를 다시 설치해야합니다. 이 테마를 닫습니다. – user1346834

+0

Nick이 공백을 포함 할 수 있다면 nick의 단어 시작 부분에 c, f 또는 s가 포함 된 모든 nick에 대해 정규 표현식이 실패합니다. –

+0

나는 그것을 이해하지만, OR과 함께 완전한 단어를 사용하는 방법을 모른다 : OR 접힘 또는 OR을 보여 주었다. 너 나 좀 도와 줄 수있어? – user1346834