아래 편집기는 PHP 정규식에서 i, m, s, x 및 e가 각각 무엇을 나타내는지에 대한 진부한 표현을 제공합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 에디터를 따라가서
I
이 수정 문자를 설정하면 모드에 있는 문자가 동시에 소문자로 일치하게 됩니다.
m
이 수식어를 설정하면 "line start"와 "line end"가 전체 문자열의 시작과 끝과 일치합니다. 개행 문자 앞과 뒤.
s
이 수정자를 설정하면 패턴의 점 메타 문자(.)가 줄 바꿈을 포함한 모든 문자와 일치합니다. 이 설정이 없으면 개행 문자가 포함되지 않습니다.
x
이 수정자를 설정하면 패턴의 공백 문자는 이스케이프되거나 문자 클래스 내에서 # 사이의 모든 문자가 아닌 이상 완전히 무시됩니다. 이스케이프되지 않은 문자 클래스 외부와 다음 개행 문자(포함)도 무시됩니다.
e
이 수정자가 설정된 경우 preg_replace()는 대체 문자열 교체에서 역참조를 정상적으로 처리합니다.
? .+ 및 * 뒤에는 탐욕스럽지 않은 일치를 나타냅니다. *, + 및 ? 한정자는 가능한 많은 리터럴과 일치한다는 점에서 모두 탐욕적입니다. 최소 일치.
예:
<?php $string = "上飞机离开我<img border='0' alt='' src='/uploadfile/2009/0921/20090921091612567.jpg' border='0' />sdfsdf"; $su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\'](.+?)[\"|\'] /", $string,$match); // 匹配src=的内容 print_r($match[1]); // 输出 /uploadfile/2009/0921/20090921091612567.jpg $su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\'](.+)[\"|\'] /", $string,$match); print_r($match[1]); // 输出 /uploadfile/2009/0921/20090921091612567.jpg' border=' ?>
예: (?i):
(?i)는 PHP의 내부 수정자를 의미하며 i는 대소문자를 구분하지 않음을 나타냅니다.
다른 수정자에는 x, m, s, U 등이 포함됩니다. 이는 우리가 사용한 것과 동일한 패턴 수정자입니다.
패턴 내부에 사용된다는 차이점이 있습니다.
ccc(a(?i))bcd 匹配 cccabcd和cccAbcd
위치한 하위 패턴 내에서만 작동하며 a(?i)bc는 abc + i와 동일합니다. 수정자 (?i)는 전체 패턴
역참조
에 작용하기 때문에 정규식 패턴이나 패턴의 일부 주위에 괄호를 추가하면 연관된 일치 항목이 저장됩니다. 임시 버퍼에서 캡처된 각 부분 일치는 정규식 패턴에서 왼쪽에서 오른쪽으로 발견된 대로 저장됩니다. 부분 일치가 저장되는 버퍼는 1부터 시작하여 최대 99개의 하위 표현식까지 연속적으로 번호가 지정됩니다. 각 버퍼는 'n'을 사용하여 액세스할 수 있습니다. 여기서 n은 특정 버퍼를 식별하는 한 자리 또는 두 자리 십진수입니다.
비캡처 메타문자 '?:', '?=' 또는 '?!'를 사용하여 관련 일치 항목의 보존을 무시할 수 있습니다.
위 내용은 PHP 정규식에서 i, m, s, x, e가 무엇을 의미하는지에 대한 간략한 설명입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요. !