>  기사  >  백엔드 개발  >  PHP의 메타문자란 무엇입니까? 정규식 메타문자를 어떻게 사용하나요? (코드 포함)

PHP의 메타문자란 무엇입니까? 정규식 메타문자를 어떻게 사용하나요? (코드 포함)

慕斯
慕斯원래의
2021-06-09 15:24:532376검색

이전 기사에서는 "PHP 정규식의 원자란 무엇입니까?"에 대해 소개했습니다. 어떤 내용으로 구성되어 있나요? (코드 포함) ", 이 기사에서는 계속해서 PHP의 메타문자가 무엇인지 소개합니다. 정규식 메타문자를 어떻게 사용하나요? (첨부코드)

PHP의 메타문자란 무엇입니까? 정규식 메타문자를 어떻게 사용하나요? (코드 포함)

메타 문자(원자 수식어) ​​

원자 번호 수식어

  • +는 이전 원자가 여러 번 나타나는 것을 의미합니다.

  • ? e 번 또는 1 번

  • *은 이전 원자가 B 번 1 번 이상 나타남을 의미합니다

  • {m,n} 은 이전 원자가 H 번 이상, 최대 N 번 나타남을 의미합니다

  • {}는 이전을 의미합니다. 원자가 지정된 횟수만큼 나타남을 의미합니다.

  • {m,}은 이전 원자가 적어도

  • 단어 경계 수정자(이해)

단어 경계란 무엇입니까?

  • 단어 분할 가능 문자는 공백, 탭 기호, 특수 문자, 문자열의 시작과 끝, 각 줄의 끝을 포함하는 단어 경계입니다.

  • 단어 경계로 사용할 수 없는 부분은 숫자, 문자 그리고 _

  • b는 단어 경계를 나타냅니다.

  • B는 단어가 아닌 경계를 나타냅니다.

문자열 경계 수식어(즉, 시작 그리고 end )

  • 는 지정된 문자로 시작하는 콘텐츠를 나타냅니다.

  • $는 지정된 문자로 끝나는 콘텐츠를 나타냅니다.

  • ^String$은 특정 문자열과 정확히 일치하는 것을 나타냅니다. an error

  • ^ 및 $를 사용하여 각 줄의 시작과 끝을 일치시키려면 패턴 수정자 m을 사용하여 여러 줄로 처리해야 합니다.

수식어 선택

Mode 단위()

  • 1. 우선순위 변경

  • 2. 원자수 수식어 사용 목적으로 여러 원자를 하나의 원자로 취급합니다.

  • 3. 대괄호와 일치하는 콘텐츠를 메모리에 저장합니다.

  • 4. 원자 번호 수식자를 사용하여 원자를 시뮬레이션하는 데에만 ()를 사용하는 경우 괄호 시작 부분에 ?:를 사용하여 메모리에 저장하는 효과를 해제할 수 있습니다. 효율성을 향상시킵니다.

콘텐츠(Google)를 일치시키고 싶다고 가정해 보겠습니다. 이때 방금 출력한 Google의 두 번째 o가 $pattern = '/를 정의하면 존재할 수도 있고 존재하지 않을 수도 있다는 요구 사항이 있습니다. google/ ';정의를 마친 후 매칭을 수행하여 매칭 결과가 성공한 것으로 확인되었습니다(실행 결과는 아래와 같습니다). 그러나 두 번째 o를 삭제하자 매칭 결과가 실패했습니다.

<?php
//进行匹配
$str = $_POST[&#39;str&#39;];
//$pattern = &#39;/a/&#39; ;
//调用正则匹配函数
$pattern = &#39;/google/&#39;;
$result = preg_match($pattern , $str , $match);
echo &#39; 匹配结果为: &#39;.$result;
echo &#39;<hr/>&#39; ;
if ( $result){ 
echo &#39;<font color="pink" size="5 ">匹配成功</font>&#39;;
}else{
echo &#39;<font color="red">匹配失败</font>&#39;;
}
var_dump($match);
?>

Code 결과

PHP의 메타문자란 무엇입니까? 정규식 메타문자를 어떻게 사용하나요? (코드 포함)

PHP의 메타문자란 무엇입니까? 정규식 메타문자를 어떻게 사용하나요? (코드 포함)

이때 두 번째 o가 존재할 수 있는지 여부를 설정하려면 두 번째 o 뒤에 물음표(?)를 삽입하여 이전 원자가 있음을 표시하면 됩니다. 0회 또는 1회 나타날 수 있음), 이때 다시 일치하면 결과가 성공적으로 일치함을 알 수 있습니다.

<?php
//进行匹配
$str = $_POST[&#39;str&#39;];
//$pattern = &#39;/a/&#39; ;
//调用正则匹配函数
$pattern = &#39;/goo?gle/&#39;;
$result = preg_match($pattern , $str , $match);
echo &#39; 匹配结果为: &#39;.$result;
echo &#39;<hr/>&#39; ;
if ( $result){ 
echo &#39;<font color="pink" size="5 ">匹配成功</font>&#39;;
}else{
echo &#39;<font color="red">匹配失败</font>&#39;;
}
var_dump($match);
?>

코드 결과는 다음과 같습니다.

PHP의 메타문자란 무엇입니까? 정규식 메타문자를 어떻게 사용하나요? (코드 포함)

PHP의 메타문자란 무엇입니까? 정규식 메타문자를 어떻게 사용하나요? (코드 포함)

(o)를 원하는 경우 한 번 또는 여러 번 나타날 수 없습니다. 그런 다음 (?)를 사용하여 물음표를 더하기 기호로 변경합니다

$pattern = '/goo+gle/';

그러면 실행 결과가 다음과 같이 표시됩니다.

PHP의 메타문자란 무엇입니까? 정규식 메타문자를 어떻게 사용하나요? (코드 포함)

PHP의 메타문자란 무엇입니까? 정규식 메타문자를 어떻게 사용하나요? (코드 포함)

추천 학습: "PHP 비디오 튜토리얼

위 내용은 PHP의 메타문자란 무엇입니까? 정규식 메타문자를 어떻게 사용하나요? (코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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