pcre 정규표현식 예제

avatar
| Uncategorized

범위는 ASCII 정렬 시퀀스에서 작동합니다. 숫자로 지정된 문자(예: [00-37]에도 사용할 수 있습니다. caseless 일치가 설정된 경우 문자를 포함하는 범위가 사용되는 경우 두 경우 모두의 문자와 일치합니다. 예를 들어 [W-c]는 [\^_`wxyzabc]와 같으며, 대문자 없이 일치하며”fr” 로캘에 대한 문자 테이블이 사용 중인 경우 [xc8-xcb]는 두 경우 모두 악센트 있는 E 문자와 일치합니다. 프로그래머인 경우 위의 정규식을 적용한 간단한 정규식 엔진도 데이터를 5번 검색하는 최첨단 일반 텍스트 검색 알고리즘을 능가하기 때문에 소프트웨어가 더 빠르게 실행됩니다. 정규표현식은 개발 시간도 단축합니다. 정규법 엔진을 사용하면 한 줄(예: 펄, PHP, 파이썬, 루비, Java 또는 .NET) 또는 몇 줄(예: PCRE를 사용하는 C)만 사용하여 사용자의 입력이 유효한 전자 메일 주소처럼 보이는지 확인합니다. 단어 경계는 현재 문자와 이전 문자가 w 또는 W(즉, w일치와 다른 일치 W) 모두 일치하지 않는 제목 문자열의 위치이거나 첫 번째 또는 마지막 문자가 w와 일치하는 경우 문자열의 시작 또는 끝입니다. 각각. UTF 모드에서는 PCRE_UCP 옵션을 설정하여 w및 W의 의미를 변경할 수 있습니다. 이 작업이 완료되면 b 및 B에도 영향을 줍니다. PCRE나 펄에는 별도의 “단어 시작” 또는 “단어 끝” 메타시퀀스가 없습니다. 그러나 b를 따르는 것이 무엇이든 일반적으로 어떤 것이 결정되는지 결정합니다.

예를 들어 ba 조각은 단어 의 시작 부분에 “a”와 일치합니다. 위의 점을 제외하고 PCRE는 Perl의 정규식 엔진에 대한 주요 구문 수준 회귀 테스트 중 하나인 Perl `t/op/re_test` 파일에서 테스트를 통과할 수 있습니다. 기본적으로 PCRE는 컴파일 시간과 일치 시간에 여러 최적화를 구현하며 한 가지 부작용은 콜아웃이 건너뛰는 경우가 있다는 것입니다. 가능한 모든 콜아웃이 필요한 경우 관련 최적화를 사용하지 않도록 설정하는 옵션을 설정해야 합니다. 자세한 내용과 콜아웃 함수에 대한 인터페이스에 대한 전체 설명은 pcrecallout 설명서에 나와 있습니다. 마이너스(하이픈) 문자를 사용하여 문자 클래스의 문자 범위를 지정할 수 있습니다. 예를 들어 [d-m]은 d와 m 사이의 모든 문자(포함)와 일치합니다. 클래스에서 빼기 문자가 필요한 경우 백슬래시로 이스케이프하거나 일반적으로 클래스의 첫 번째 또는 마지막 문자 또는 범위 바로 이후에 범위를 나타내는 것으로 해석할 수 없는 위치에 표시되어야 합니다. 예를 들어 [b-d-z]는 범위 b의 문자를 d, 하이픈 문자 또는 z와 일치시다. 다른 방법은 대신 명명된 괄호를 사용하는 것입니다. 이에 대한 펄 구문은 (?&name); PCRE의 이전 구문(? P>이름)도 지원됩니다.

위의 예제를 다음과 같이 다시 작성할 수 있습니다: 아파치 및 Nginx HTTP 서버와 같은 저명한 오픈 소스 프로그램, PHP 및 R 스크립팅 언어, PCRE 라이브러리를 통합; 라이브러리가 BSD 라이센스로 독점 소프트웨어도 마찬가지로 할 수 있습니다.