정규식 \ p {L} 및 \ p {N}


106

정규식을 처음 사용하며 다음 정규식을 받았습니다.

(\p{L}|\p{N}|_|-|\.)*

*의 의미와 | "또는"을 의미하고 \는 이스케이프합니다.

그러나 나는 무엇 \p{L}을 \p{N}의미 하는지 모른다 . 결과없이 Google에서 검색했습니다 ...

누군가 나를 도울 수 있습니까?


나도 검색했지만 이 결과를 얻었습니다 .
— MC Emperor

답변:


160

\p{L}"문자"범주의 단일 코드 포인트와 일치합니다.
\p{N}모든 스크립트의 모든 종류의 숫자와 일치합니다.

출처 : regular-expressions.info

정규식을 많이 사용하려면 해당 사이트를 북마크에 추가하는 것이 좋습니다. 매우 유용합니다.


빠른 답변을 위해 thx :). 그러나 정규식이 10과 일치해서는 안됩니까? : 나는 온라인 정규식 정규 시도 regexpal.com
— Diemauerdk

@ user1093774 : regexpal이를 지원 한다고 생각하지 않지만 맞아야 합니다 \p{}.
— Cerbrus 2013

1
이 구문은 모든 인터프리터가 인식하지 못하는 최신 유니 코드 정규식 구현에만 적용됩니다. \ p {L}을 {a-zA-Z} (ascii 표기법) 또는 {\ w} (perl / vim 표기법)로 안전하게 대체 할 수 있습니다. {0-9} (ascii) 또는 {\ d} (perl / vim)의 \ p {N}입니다. 당신이 그들 모두 일치 할 경우에, 다만 할 {A-ZA-Z0-9} + 또는 {\ w \ D} +
— 라파엘 BECKEL

16
라파엘, 나는 '그나마 안전하게 대체 할 수 있음을 동의 \p{L}에 의해 {a-zA-Z}. {a-zA-Z}예를 들어 é는 프랑스어로 사용 되는와 같이 악센트 부호가있는 문자와 일치하지 않습니다 . 따라서 영어 만 처리하고 다른 것은 처리하지 않는 경우에만 안전하게 교체 할 수 있습니다.
— Rolf

코드 포인트 또는 코드 단위와 일치합니까? stackoverflow.com/a/27331885/4928642
— Qwertiy

30

유니 코드 속성 바로 가기 ( \p{L}유니 코드 문자 용, \p{N}유니 코드 숫자 용)입니다. .NET, Perl, Java, PCRE, XML, XPath, JGSoft, Ruby (1.9 이상) 및 PHP ( 5.1.0 이후 )에서 지원됩니다.

어쨌든 그것은 매우 이상한 정규식입니다. 문자 클래스가 충분할 때 대체를 사용해서는 안됩니다.

[\p{L}\p{N}_.-]*

XML에서의 정규식 - 난 : 자신을 정규식을 constrcuted하지 않은
— Diemauerdk

캡처 링 괄호가 사용되었다는 사실과는 별도로 RE는 실제로 동일한 것으로 컴파일됩니다 ( \p{…}애초에 이스케이프 시퀀스 스타일 을 지원하는 최적화 RE 엔진 에서).
— Donal Fellows

XRegExp 유니 코드 플러그인처럼 보입니다. 그렇다면 모든 언어의 영숫자입니다
— Tim

감사합니다. 지원 언어를 나열하는 것이 유용했고 거기에 제한이 있다는 것을 알지 못했습니다 (대부분의 정규식은 "보편적"임).
— HoldOffHunger

@HoldOffHunger : 불행히도 그것과는 거리가 멀다. 그렇기 때문에 RegexBuddy와 같은 도구 시장이 있습니다. 보세요 regular-expressions.info/refbasic.html을 , 당신은 정규식 맛의 미묘한 및 그리 미묘한 차이에 놀랄거야 ...
— 팀 Pietzcker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.