2014-11-19 2 views
0

문자열 : 올바른으로 검증 할 것 "페이지 eter는 페이지전자에게 xpression를 잉 그의 리터가 말했다." 하지만 "Apple"또는 "APPLE"문자열 만 입력하면 올바른 것으로 확인되지 않습니다. 내가 여기서 무엇을 놓치고 있니?주어진 패턴의 전체 단어를 처리하는 방법은 무엇입니까?

"[Aa].*? p.*? p.*? l.*? e\\S*" 
+0

* 표시의 0 개 이상의 인스턴스와 일치합니다. (임의의 문자). 그것을 선택 사항으로 만들 필요가 없습니다. – kindasimple

+0

@kindasimple은 선택 사항이 아니므로 '*'는 비 욕심 많은 일치를합니다. –

+0

감사합니다. @AvinashRaj – kindasimple

답변

3

대소 문자를 구분하지 않고 일치 시키려면 공백을 제거해야하며 대소 문자를 구분하지 않는 수정자를 켜야합니다. 이 Apple 또는 APPLE

"(?i)a.*?p.*?p.*?l.*?e\\S*" 

코드와 일치 할 수 있도록 :

String s1 = "Abe peter said pan saw his lying expression"; 
String s2 = "Apple"; 
String s3 = "APPLE"; 
System.out.println(s1.matches("(?i)a.*?p.*?p.*?l.*?e\\S*")); 
System.out.println(s2.matches("(?i)a.*?p.*?p.*?l.*?e\\S*")); 
System.out.println(s3.matches("(?i)a.*?p.*?p.*?l.*?e\\S*")); 

출력 :

true 
true 
true 
+0

'(? i)'가 무슨 뜻인지 물어볼 수 있습니까? – user827391012

+0

'(? i)'대소 문자를 구별하지 않는 수정 자. 그것은 패턴의 문자를 대소 문자를 구분하지 않게합니다. 예를 들어, 패턴을''(? i) apple "'으로 지정하면, 이것은'apple','Apple','AppLE' 등의 case와 무관하게 일치 할 것입니다. –

+0

감사합니다. 도움을 주셔서 감사합니다. – user827391012

2

[Aa] 다음의 모든 기호 앞에 공백이 있으므로 정규식은 "Apple"에서 작동하지 않습니다. "A p p l e"에서 작동합니다.

관련 문제