"[^][]" 정규식은 무엇을 의미합니까?
제공된 정규식에서:
\[(?:[^][]|(?R))*\]
"[^][]" 정규식 구성 요소는 "[" 또는 "]"를 제외한 모든 문자와 일치하는 문자 클래스입니다.
문자 클래스 설명
A 문자 클래스는 지정된 문자 범위 내의 모든 문자와 일치합니다. 이 경우 "[^]"는 "뒤에 ]가 오지 않음"을 의미하므로 "[^][]"는 "]"가 뒤에 오지 않는 모든 문자와 효과적으로 일치합니다.
정규식 재귀
"[^][]" 주위의 괄호는 비캡처 그룹을 나타냅니다. 그룹 내에서 "?R" 토큰은 전체 정규식에 대한 재귀 참조를 나타냅니다. 이를 통해 정규식이 중첩된 대괄호와 일치할 수 있습니다.
이스케이프 시퀀스 방지
PCRE(PHP의 preg_ 함수에서 사용하는 정규식 엔진)에서는 그렇지 않습니다. 문자 클래스 내에서 "[" 또는 "]"를 이스케이프하는 데 필요합니다. "[^][]" 안의 "]"가 문자 클래스에 속한다는 것이 확실하기 때문입니다.
인라인 xx 수정자(PHP 7.3 )
PHP 7.3에서는 인라인 xx 수정자를 사용하여 문자 클래스 내의 공백 문자를 무시할 수 있습니다. 이를 통해 다음과 같은 덜 모호한 클래스를 작성할 수 있습니다.
(?xx) [^ ][ ] [ ] ] [ [ ] [^ [ ]
호환성 및 특이 사항
"[^][]" 구문은 대부분의 정규 표현식과 호환됩니다. , PCRE, Perl, Python, Java 등을 포함합니다. 그러나 Ruby 및 JavaScript에서는 인식되지 않습니다(이전 버전의 Internet Explorer 제외).
중첩 대괄호 일치
샘플 정규 표현식의 맥락에서, "[^][]"는 대괄호가 일치하는지 확인하여 중첩된 대괄호가 일치하는지 확인합니다.
추가 참고 사항
위 내용은 중첩된 대괄호 일치에서 '[^][]' 정규식 구성 요소는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!