>백엔드 개발 >PHP 튜토리얼 >PHP 정규 표현식 /i, /s, /x,/u, /U, /A, /D, /S 등 소개

PHP 정규 표현식 /i, /s, /x,/u, /U, /A, /D, /S 등 소개

零下一度
零下一度원래의
2017-07-25 11:47:171890검색

ㅋㅋㅋ

m (PCRE_MULTILINE)

기본적으로, PCRE는 대상 문자열이 한 줄의 문자로 구성되어 있다고 생각합니다(그러나 실제로는 여러 줄이 포함될 수 있습니다). "줄 시작"메타 문자 (^)은 문자열의 시작 부분 , 에만 일치하고 "줄 끝"metacharacter ($ ) 문자열 , 또는 마지막 개행 문자 의 끝과만 일치합니다(D 수정자 가 설정되지 않은 경우). 이 동작은 다음과 동일합니다. perl 동일 . 이 수정자가 설정되면, "line and "의 start of line end of line " 는 대상 문자열의 Newline 문자 전후에 일치합니다. 이것은 perl 수정자 와 동일합니다. "n 대상 문자열 "문자 , 또는 패턴 ^ 또는 $, 이 수정자를 설정해도 효과가 없습니다. ss ( PCRE_DOTALL)

이 수정자 가 설정된 경우 패턴의 점 메타 문자는 줄 바꿈 문자 를 포함한 모든 문자 , 와 일치합니다. 이 수정자는 와 동일합니다. perl의 /s 수정자 .. 이 수정자 .x의 설정에 관계없이 항상 개행 , 과 일치합니다. (PCRE_EXTENDED ) 이 수정자가 설정된 경우 ,

패턴에 있거나 문자 클래스에 없는 이스케이프 처리되지 않은 공백 데이터 문자는 항상 무시됩니다. 이스케이프 처리되지 않은 문자 클래스 외부의

, # 문자 및 문자 사이의 다음 개행 문자도 무시됩니다 .

수정자

perl/x 수정자 와 동일합니다. 이를 통해 주석은 컴파일된 패턴에 포함될 수 있습니다. . (?( 조건부 하위 그룹 소개(번역 참고: ​​이 구문으로 정의된 특수 문자 시퀀스는 시퀀스에 공백 문자가 나타나면 컴파일 오류가 발생합니다. 예를 들어( ?( 오류가 발생합니다.).

e (PREG_REPLACE_EVAL)

이 수정자가 설정되면, preg_replace()가 문자열 교체를 수행합니다 역참조 교체 그 후 , 는 문자열을 php 코드 평가 실행 (eval 함수 메서드 ), 으로 대체하고 실행 결과 를 대체 에 포함된 실제 문자열로 사용합니다. 의 작은따옴표, 큰따옴표, backslash()NULL 문자는 역 참조 대체가 사용됩니다. 백슬래시 이스케이프

.

교체매개변수가 합법적인php코드 문자열 , 그렇지 않으면 php로 구성되어 있는지 확인하세요. 해석을 만들어낼 것입니다. preg_replace()라고 불리는 줄에서 오류 .

ㅋㅋㅋ 이 수정자를 무시하세요

. A (PCRE_ANCHORED)이 수정자 가 설정되면 모드가 강제로 "anchored

"

모드로 설정됩니다. , 그것은 제약을 말해보세요 일치는 대상 문자열의 시작 부분에서만

검색합니다.

이 효과는 , 패턴을 사용하여 구성할 수도 있으며 이는 perl의 경우에도 마찬가지입니다. 이 모드를 달성할 수 있는 유일한 방법.D (PCRE_DOLLAR_ENDONLY)

이 수정자가 설정된 경우 패턴의 메타 문자 달러 기호는 대상 문자열 의 끝과만 일치합니다. 이 수정자 가 설정되지 않은 경우 , 문자열이 끝날 때 개행 문자 를 사용하면 달러 기호도 해당 개행 문자 와 일치합니다( 단 이전 개행 문자 는 제외). 수식자 m가 설정된 경우 , 이 수정자는 무시됩니다 perl.

S

Be a When에는 이 수정자와 동등한 수정자가 없습니다. 패턴을 사용해야합니다 여러번

,

매칭 속도를 향상시키기 위해서는 시간을 투자할 가치가 있습니다 추가 분석을 해보세요 이 수정자가 설정되면 , 이 추가 분석이 수행됩니다. 현재, 이 패턴 분석은 고정되지 않은 패턴 일치에만 적용됩니다(i.e. 별도의 고정 시작 문자가 없습니다).

U

(PCRE_UNGREEDY)

이 수정자는 수량어의 "greedy"mode을 반전시켜 수량어를 기본적으로 non-greedy로 설정합니다. 정량어를 전달하고 ? 탐욕스럽게 만드는 방법 이것은 perl과 호환되지 않습니다. 또한 in-mode 수정자 (?U)를 사용하여 설정할 수도 있습니다. 설정, 또는 수량자(예:.*?).

참고:

비 욕심 모드 , 는 일반적으로 pcre.backtrack_limit.

을 초과하는 문자와 일치할 수 없습니다. )

이 수정자는 perl과 호환되지 않는 PCRE의 첨부 기능을 활성화합니다. 패턴의 백슬래시 뒤에는 ingen a 이 옵니다. 특별한 의미는 없습니다. 문자는 오류를 발생시킵니다 , 이러한 문자는 이전 버전과의 호환성을 보장하기 위해 예약되었습니다 . 백슬래시 다음에 특별한 의미가 없는 문자는 해당 문자의 원본으로 간주됩니다현재 이 수정자로 다른 기능은 제어되지 않습니다 )내부 옵션 설정(?J)로컬 수정 PCRE_DUPNAMESoptions 하위 그룹 이름 변경 허용

. (

Annotation:은 내부 옵션을 통해서만 설정할 수 있습니다. external

/J

설정은 오류를 생성합니다.)u (PCRE8 )

이 수정자는 perl과 호환되지 않는 추가 기능 을 엽니다. 패턴 문자열은 unixversion에 대해 utf-8으로 간주됩니다. php 4.1.0 이상, win32 버전php 4.2.3을 지금 사용할 수 있습니다. PHP 4.3.5utf-8mode의 유효성 검사를 시작합니다. Perl과 호환되지 않는 PCRE 기능. 패턴 문자열은 UTF-8로 처리됩니다. 이 수정자는 Unix에서는 PHP 4.1.0 이상, win32에서는 PHP 4.2.3에서 사용할 수 있습니다. 이후 패턴의 유효성이 확인됩니다. PHP 4.3.5.

위 내용은 PHP 정규 표현식 /i, /s, /x,/u, /U, /A, /D, /S 등 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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