>  기사  >  백엔드 개발  >  PHP 정규식에서 i, m, s, x, e가 각각 나타내는 세부 사항에 대한 간략한 설명

PHP 정규식에서 i, m, s, x, e가 각각 나타내는 세부 사항에 대한 간략한 설명

黄舟
黄舟원래의
2017-03-04 13:59:203313검색

아래 편집기는 PHP 정규식에서 i, m, s, x 및 e가 각각 무엇을 나타내는지에 대한 진부한 표현을 제공합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 에디터를 따라가서

I
이 수정 문자를 설정하면 모드에 있는 문자가 동시에 소문자로 일치하게 됩니다.


이 수식어를 설정하면 "line start"와 "line end"가 전체 문자열의 시작과 끝과 일치합니다. 개행 문자 앞과 뒤.


이 수정자를 설정하면 패턴의 점 메타 문자(.)가 줄 바꿈을 포함한 모든 문자와 일치합니다. 이 설정이 없으면 개행 문자가 포함되지 않습니다.


이 수정자를 설정하면 패턴의 공백 문자는 이스케이프되거나 문자 클래스 내에서 # 사이의 모든 문자가 아닌 이상 완전히 무시됩니다. 이스케이프되지 않은 문자 클래스 외부와 다음 개행 문자(포함)도 무시됩니다.


이 수정자가 설정된 경우 preg_replace()는 대체 문자열 교체에서 역참조를 정상적으로 처리합니다.

? .+ 및 * 뒤에는 탐욕스럽지 않은 일치를 나타냅니다. *, + 및 ? 한정자는 가능한 많은 리터럴과 일치한다는 점에서 모두 탐욕적입니다. 최소 일치.

예:

<?php
$string = "上飞机离开我<img border=&#39;0&#39; alt=&#39;&#39; src=&#39;/uploadfile/2009/0921/20090921091612567.jpg&#39; border=&#39;0&#39; />sdfsdf";

$su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\&#39;](.+?)[\"|\&#39;] /", $string,$match); // 匹配src=的内容
print_r($match[1]); // 输出 /uploadfile/2009/0921/20090921091612567.jpg

$su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\&#39;](.+)[\"|\&#39;] /", $string,$match);
print_r($match[1]); // 输出 /uploadfile/2009/0921/20090921091612567.jpg&#39; border=&#39;
?>

예: (?i):

(?i)는 PHP의 내부 수정자를 의미하며 i는 대소문자를 구분하지 않음을 나타냅니다.

다른 수정자에는 x, m, s, U 등이 포함됩니다. 이는 우리가 사용한 것과 동일한 패턴 수정자입니다.

패턴 내부에 사용된다는 차이점이 있습니다.

ccc(a(?i))bcd 匹配 cccabcd和cccAbcd
와 같이 (?i)가

위치한 하위 패턴 내에서만 작동하며 a(?i)bc는 abc + i와 동일합니다. 수정자 (?i)는 전체 패턴

역참조

에 작용하기 때문에 정규식 패턴이나 패턴의 일부 주위에 괄호를 추가하면 연관된 일치 항목이 저장됩니다. 임시 버퍼에서 캡처된 각 부분 일치는 정규식 패턴에서 왼쪽에서 오른쪽으로 발견된 대로 저장됩니다. 부분 일치가 저장되는 버퍼는 1부터 시작하여 최대 99개의 하위 표현식까지 연속적으로 번호가 지정됩니다. 각 버퍼는 'n'을 사용하여 액세스할 수 있습니다. 여기서 n은 특정 버퍼를 식별하는 한 자리 또는 두 자리 십진수입니다.

비캡처 메타문자 '?:', '?=' 또는 '?!'를 사용하여 관련 일치 항목의 보존을 무시할 수 있습니다.

위 내용은 PHP 정규식에서 i, m, s, x, e가 무엇을 의미하는지에 대한 간략한 설명입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요. !


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