>백엔드 개발 >PHP 튜토리얼 >PHP 정규식의 수정자는 무엇입니까?

PHP 정규식의 수정자는 무엇입니까?

零下一度
零下一度원래의
2017-07-25 11:39:191853검색

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

PHP 정규식 탐욕 모드:

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

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

/a.+?b/
/a.+b/U

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

/a.+ b/

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

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

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

s 패턴의 점 메타 문자(.)는 줄 바꿈을 포함한 모든 문자와 일치합니다.

x 패턴의 공백 문자는 이스케이프 처리되거나 문자 클래스에서 제외되지 않는 한 완전히 무시됩니다. # 이스케이프되지 않은 문자 클래스 외부와 다음 줄바꿈(포함)도 무시됩니다.

A (PCRE_ANCHORED) 이 수정자가 설정되면 모드는 강제로 "고정"됩니다. 즉, 대상의 시작 부분에서만 일치를 강제합니다. 즉, 패턴 시작 부분에 ^를 자동으로 추가합니다.

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

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

X (PCRE_EXTRA) 이 수정자는 Perl과 호환되지 않는 PCRE의 추가 기능을 활성화합니다. 패턴의 백슬래시 뒤에 특별한 의미가 없는 문자가 오면 오류가 발생하므로 향후 확장을 위해 이 조합이 유지됩니다. 기본적으로 Perl과 마찬가지로 백슬래시 뒤에 특별한 의미가 없는 문자가 오면 문자 자체로 처리됩니다. 현재 이 수정자에 의해 제어되는 다른 특성은 없습니다. 즉, 탐욕 모드, 다음과 같은 최대 일치: /a[w]+?e/U는 abce 대신 abceadeddd의 abceade와 일치합니다. U 수정이 추가되지 않으면 abce u(PCRE_UTF8)와 일치합니다. 이 수정자는 PCRE Extra 기능을 활성화합니다. 이는 Perl과 호환되지 않습니다. 패턴 문자열은 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 정규식의 수정자는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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