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 정규식 수정자를 이해하고 익히는 데 도움이 되기를 바랍니다.