2014-11-12 5 views
2

[a-zA-Z]와 [a-z [A-Z]] 사이에 실제적인 차이가 있습니까? 자바 튜토리얼 (및 패턴 클래스의 javadoc)에 따르면자바 정규식 : 범위와 유니온의 차이

:

[a-zA-Z] a through z, or A through Z, inclusive (range) 
[a-d[m-p]] a through d, or m through p: [a-dm-p] (union) 

Java tutorial: character classes

+2

Range는'a-z'이며 범위의 합집합은'[a-zA-Z]'이며 자바에서는'[a-z [A-Z]]'또는'[[a-z] [A-Z]]'로도 쓰일 수 있습니다. – Pshemo

+3

더 나은 [article] (http://www.rexegg.com/regex-class-operations.html#union)을 읽는 것이 좋습니다. 꽤 철저합니다. – hwnd

답변

1

별로 최대한 멀리 볼 수, 특정 정규 표현식에에게 쉽게 읽을 만드는 이외. @ hwnd의 link to the regexx article은 좋은 예입니다.

필자는 문자 클래스 빌더인데 상당히 정교한 유스 케이스를 제안했다. []에 다른 문자 클래스를 래핑하여 문자 클래스를 만들 수 있으므로 다양한 구성 클래스에서 []을 스트립하는 것에 대해 걱정할 필요가 없습니다.

+1

아마도'\ p {Digit}' – fge

+1

'[\ p {Digit} [^ 5]]'는 노동 조합입니다. 결국 모든 것이 일치하게 될 것입니다. 5를 제외한 숫자와 일치 시키려면'[\ p {Digit} && [^ 5]]' – Misha

+0

좋은 점을 사용해야합니다. 덜 난처하지 않는 정규 표현식을 생각해 내 머리를 깨뜨릴 것이다! –