PHP 정규 표현식의 수정자 /i, /is, /s, /isU_php에 대한 간략한 토론

WBOY
풀어 주다: 2016-05-16 20:34:28
원래의
999명이 탐색했습니다.

PHP 정규 표현식 수식어를 배우기 전에, 먼저 메타 문자에서 언급했듯이 "?"도 중요한 역할을 합니다. 즉, "탐욕 모드"란 무엇입니까?

PHP 정규식 탐욕 모드 :

예를 들어 문자 "a"로 시작하고 문자 "b"로 끝나는 문자열을 일치시키고 싶지만 일치해야 하는 문자열의 "a" 뒤에 "b"가 많이 포함되어 있는 경우, 다음과 같습니다. "a bbbbbbbbbbbbbbbbb"로 정규식을 사용하면 첫 번째 "b"와 일치합니까 아니면 마지막 "b"와 일치합니까? 그리디 모드를 사용하면 마지막 "b"가 일치하고, 그렇지 않으면 첫 번째 "b"만 일치됩니다.

PHP 정규 표현식 그리디 모드 사용 예:

/a.b/
/a.b/U

그리디 모드를 사용하지 않은 예시 비교는 다음과 같습니다.

/a.

위에서는 수식어 U가 사용되었습니다. 자세한 내용은 수식어 소개를 참조하세요.

PHP 정규 표현식 /i, /is, /s, /isU 등은 무엇인가요?

저는 대소문자를 구분하지 않습니다

s 패턴의 점 메타 문자(.)는 개행 문자
를 포함한 모든 문자와 일치합니다.
x 패턴의 공백 문자는 이스케이프되거나 문자 클래스에 있는 문자를 제외하고 완전히 무시됩니다. 이스케이프되지 않은 문자 클래스 외부의 #과 다음 개행 문자 사이의 모든 문자도 무시됩니다.
A (PCRE_ANCHORED) 이 수정자를 설정하면 패턴이 강제로 "앵커"됩니다. 즉, 대상 문자열의 시작 부분에서만 일치하도록 강제됩니다. 즉, 패턴의 시작 부분에 ^가 자동으로 추가됩니다. .

D (PCRE_DOLLAR_ENDONLY) 이 수정자가 설정된 경우 패턴의 달러 메타 문자는 대상 문자열의 끝 부분과만 일치합니다. 이 옵션이 없으면 마지막 문자가 개행 문자인 경우 달러 기호는 해당 문자 앞에서도 일치합니다(그러나 다른 개행 문자 이전은 일치하지 않음). m 수정자가 설정된 경우 이 옵션은 무시됩니다. Perl에는 동등한 수정자가 없습니다. S 패턴을 여러 번 사용할 예정이라면 먼저 분석하여 일치 속도를 높이는 것이 좋습니다. 이 수정자가 설정되면 추가 분석이 수행됩니다. 현재 패턴 분석은 고정된 시작 문자가 하나도 없는 고정되지 않은 패턴에만 유용합니다.

U (PCRE_UNGREEDY) 이 수정자는 일치 횟수 값을 반전시켜 기본적으로 반복되지 않지만 뒤에 "?"가 오면 반복됩니다. 이는 Perl과 호환되지 않습니다. 이 옵션은 모드에서 (?U) 수정자를 설정하여 활성화할 수도 있습니다.

X (PCRE_EXTRA) 이 수정자는 Perl과 호환되지 않는 PCRE의 추가 기능을 활성화합니다. 패턴의 백슬래시 뒤에 특별한 의미가 없는 문자가 오면 오류가 발생하므로 향후 확장을 위해 이 조합이 유지됩니다. 기본적으로 Perl과 마찬가지로 백슬래시 뒤에 특별한 의미가 없는 문자가 오면 문자 자체로 처리됩니다. 현재 이 수정자에 의해 제어되는 다른 특성은 없습니다. 즉: Greedy 모드, 다음과 같은 최대 일치: /a[w] ?e/U는 abce 대신 abceadeddd의 abceade와 일치합니다. U가 수정되지 않은 경우 abce u(PCRE_UTF8)와 일치합니다. 이 수정자는 Perl과 호환되지 않는 PCRE를 활성화합니다. 추가 기능. 패턴 문자열은 UTF-8로 처리됩니다. 이 수정자는 Unix에서는 PHP 4.1.0부터, win32에서는 PHP 4.2.3부터 사용할 수 있습니다.

PHP 정규식 수정자 이해 :

PHP 정규식의 수정자는 정규식의 많은 특성을 변경하여 정규식을 사용자의 요구에 더 적합하게 만들 수 있습니다(참고: 수정자는 대소문자를 구분하므로 "e"는 "E"와 같지 않습니다).

PHP 정규식 수정자의 유형 및 소개:

◆i: "i"가 수식어에 추가되면 정규식은 대소문자 구분을 취소합니다. 즉, "a"와 "A"는 동일합니다.

◆m: 기본 일반 시작 "^"과 끝 "$"는 일반 문자열에만 적용됩니다. "m"이 수정자에 추가되면 시작과 끝은 문자열의 각 줄을 참조합니다. 시작은 "^"이고 끝은 "$"입니다.

◆s: "s"가 수식어에 추가되면 개행 문자 이외의 문자를 나타내는 기본 "."은 개행 문자를 포함한 모든 문자가 됩니다!

◆x: 이 수정자를 추가하면 표현식의 공백 문자가 이스케이프되지 않는 한 무시됩니다.

◆e: 이 수정자는 교체에만 유용합니다. 즉, 교체 시 PHP 코드로 사용된다는 의미입니다.

◆A: 이 수식어를 사용하는 경우 표현식은 일치하는 문자열의 시작이어야 합니다. 예를 들어 "/a/A"는 "abcd"와 일치합니다.

◆E: "m"과 달리 이 수정자를 사용하면 "$"는 개행 문자 앞이 아닌 문자열의 절대 끝과 일치합니다. 이 모드는 기본적으로 켜져 있습니다.

◆U: 물음표와 같은 기능을 가지고 있으며, "탐욕 모드"를 설정하는 데 사용됩니다.

이상으로 PHP 정규식 수정자에 대한 소개를 마치겠습니다. PHP 정규식 수정자를 이해하고 익히는 데 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿