이런 어리석은 질문을하는 것이 싫지만 내 코드가 내가 예상 한대로 작동하지 않는 이유는 무엇입니까?Java 정규식 혼동
주요 방법자바 코드 :
String s = "\"The fat-dog [ruffus] @nd the stupid-cat [*mewzer*] don't like each other!\"";
String[] tokens = s.replaceAll("[\\x27]+", "").replaceAll("[^a-zA-z_\\x2D]+", " ").replaceAll("\\s+", " ").trim().split(" ");
System.out.println(s);
for (String t : tokens)
System.out.println("Token: " + t);
이 인쇄 :
는"지방-개 [ruffus] @nd 바보 고양이 [mewzer] 좋아하지 않는다 서로!"
그 빌어 먹을 괄호를 제외하고, 대부분 정확Token: The Token: fat-dog Token: [ruffus] Token: nd Token: the Token: stupid-cat Token: [ Token: mewzer Token: ] Token: dont Token: like Token: each Token: other
! 그들은 "[^a-zA-z_\\x2D]+"
표현으로 대체되어서는 안됩니까? 심지어 replaceAll("\\[\\]"," ")
을 추가 한 다음 replaceAll("\\x5B\\x5D"," ")
을 추가하려고 시도했습니다.
어떻게 이러한 대괄호를 제거 할 수 있습니까? 방금 언급 한 모든 진술을 바꿀 수있는 방안은 무엇입니까?
아, 미묘한 대문자 표기법. 때로는 눈을 이해하는 두 번째 정규식 쌍이 필요합니다. 감사. – Doug