>  기사  >  백엔드 개발  >  php - PCRE 정규 표현식 유니코드 문자 속성

php - PCRE 정규 표현식 유니코드 문자 속성

伊谢尔伦
伊谢尔伦원래의
2016-11-21 17:25:251317검색

PHP 4.4.0 및 5.1.0부터 UTF-8 모드를 선택할 때 일반적인 문자 유형을 일치시키기 위해 세 가지 추가 이스케이프 시퀀스가 ​​사용됩니다.

p{xx}

xx 속성이 있는 문자

P{xx}

xx 속성이 없는 문자

각 문자에는 두 개의 약어로 지정된 하나의 명확한 속성이 있습니다. Perl과의 호환성을 위해 왼쪽 중괄호 { 뒤에 ^를 추가하여 부정을 나타낼 수 있습니다. 예를 들어, p{^Lu}는 P{Lu}와 동일합니다.

p 또는 P를 통해 문자 하나만 지정하면 해당 문자로 시작하는 모든 속성이 포함됩니다. 이 경우 중괄호 이스케이프 시퀀스는 선택 사항입니다.

p{L}

pL

대소문자를 구분하지 않는 일치를 지정하면 이러한 이스케이프 시퀀스에 영향을 주지 않습니다. 예를 들어 p{Lu}는 항상 대문자와 일치합니다.

유니코드 문자 집합은 특정 리터럴로 정의됩니다. 이러한 문자 세트의 문자와 일치하려면 리터럴 이름을 사용하십시오. 예:

p{Greek}

P{Han}

결정된 텍스트에 없으면 공통으로 집중됩니다.

X 이스케이프는 모든 수의 유니코드 문자와 일치합니다. X는 (?>PMpM*)

과 동일합니다. 즉, "mark" 속성이 없는 문자와 그 뒤에 "mark" 속성이 있는 문자가 여러 개나옵니다. 이 순서를 원자 그룹으로 간주합니다(자세한 내용은 아래 참조). 일반적으로 "mark" 속성이 있는 문자는 앞의 문자에 영향을 주는 악센트입니다.

PCRE는 15000자가 넘는 문자를 포함하는 데이터 구조를 검색해야 하기 때문에 유니코드 속성을 사용하여 문자를 일치시키는 것은 빠르지 않습니다. 이것이 바로 PCRE에서 유니코드 속성 대신 전통적인 이스케이프 시퀀스 d, w가 사용되는 이유입니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.