PHP 정규 표현식의 기능우리는 이전에 여러분을 위해 preg_match 함수를 만들었습니다. 여러분 모두 이에 대해 알고 있을 것입니다. 그렇다면 PHP 정규 표현식에서 preg_match_all 함수의 구체적인 용도는 무엇입니까? 오늘은 PHP 정규식에서 preg_match_all 함수에 대한 자세한 설명을 이해하도록 안내하겠습니다!
정규식을 이해하기 전에 일반적으로 사용되는 정규식에 대한 기본 지식을 숙지해야 합니다. 이러한 내용을 기억할 수 있으면 기억해 두는 것이 가장 좋습니다. 몇 가지 특수문자만 사용하면 됩니다. 자세한 내용은 정규식을 참조하세요.
preg_match_all 함수에 대한 자세한 지침은 PHP 매뉴얼을 확인하세요. 이 기사에서는 preg_match_all을 사용하여 정규 표현식의 효과를 테스트합니다.
예제 코드:
$html = '<p id="biuuu">jb51.net</p><p id="biuuu_2">jb51.net2</p><p id="biuuu_3">jb51.net3</p>';
예제 요구 사항: biuuu, biuuu_2, biuuu_3, jb51.net, jb51.net2 및 jb51.net3(일반적으로 사용되는 일부 웹사이트 캡처 방법)과 같은 각 p 요소의 ID와 콘텐츠를 가져옵니다. 이것이 일치하는 방법입니다)
분석:
String은 기본 HTML 요소입니다. 각 p 요소는 ID와 콘텐츠에 해당하며 먼저 ID 값 내에서 p를 제거하는 방법과 독립적입니다. jb51.net과 같은 콘텐츠를 찾은 다음 다른 유사한 요소와 일치시킵니다. p에서 두 개의 값, 즉 두 개의 일치하는 표현식을 가져와야 합니다. 첫 번째 표현식은 ID 값(biuuu)을 일치시키는 데 사용되고 두 번째 표현식은 ID(jb51.net)의 내용을 일치시키는 데 사용됩니다. ). 표현식에 일반적으로 사용되는 정규식은 괄호를 사용하며, 이전 요소는 다음과 같은 형식이 됩니다.
<p id="(biuuu)">(jb51.net)</p> <p id="(表达式1)">(表达式2)</p>
좋습니다. 위의 괄호를 사용하여 일치해야 하는 영역을 나누십시오. 다음 단계는 각각 내에서 일치시키는 방법입니다. 표현식 내용에 따르면 ID는 문자, 숫자 또는 밑줄일 수 있으며 이는 기본이 되며 다음과 같이 대괄호를 사용하여 얻을 수 있습니다.
표현식 1:
[a-zA-Z0-9_]+ (表示匹配大小写字母,数字和下划线)
그런 다음 표현식 2를 일치시키는 방법 , 왜냐하면 ID의 내용은 임의의 문자일 수 있지만 < 또는 > 문자와 일치하지 않도록 주의하십시오. 왜냐하면 이 두 문자를 일치시키면 나중에 사용되는 모든 p가 일치하므로 다음으로 시작하는 요소를 제외해야 합니다. 즉, 다음과 같이 f1329f8b92097dc7fb062b4427699601로 시작하는 문자와 일치하지 않습니다.
표현식 2:
[^<>]+ (表示不匹配<和>字符)
이렇게 하면 일치해야 하는 하위 표현식이 구현되지만 일치해야 하는 표현식도 필요합니다. 방법은 다음과 같습니다.
Expression: / '"(Expression 1)"'>(Expression 2)94b3e26ee717c64999d7867364b1b4a3/
큰따옴표 " 및 /에 주의하세요. 이스케이프 문자로 이스케이프 처리하고 처음 두 개를 교체합니다. 표현식을 넣으면
는 다음과 같습니다.
'\"([a-z0-9_]+)\"'>/<p id=\"([a-z0-9_]+)\">([^<>]+)<\/p>/
이렇게 하면 각 p 요소의 ID 값과 내용과 일치하는 정규 표현식이 생성됩니다. 구현한 후 preg_match_all 함수를 사용하여 다음과 같이 테스트합니다.
$html = '<p id="biuuu">jb51.net</p><p id="biuuu_2">jb51.net2</p><p id="biuuu_3">jb51.net3</p>'; preg_match_all('/([^<>]+)<\/p>/',$html,$result); var_dump($result);
결과:
array(3) { [0]=> array(3) { [0]=> string(30) "<p id="biuuu">jb51.net</p>" [1]=> string(33) "<p id="biuuu_2">jb51.net2</p>" [2]=> string(33) "<p id="biuuu_3">jb51.net3</p>" } [1]=> array(3) { [0]=> string(5) "biuuu" [1]=> string(7) "biuuu_2" [2]=> string(7) "biuuu_3" } [2]=> array(3) { [0]=> string(8) "jb51.net" [1]=> string(9) "jb51.net2" [2]=> string(9) "jb51.net3" } }
3개의 Expression이 있는데 각각 각 표현식에 일치하는 값을 표시하고 이를 배열 형태로 저장하므로 각 p 요소의 ID와 내용을 검색할 수 있습니다. 정규식을 사용할 때 가장 중요한 것은 필요한 것이 무엇인지 파악한 다음, 명확한 아이디어로 매칭을 수행하고 preg_match_all 함수를 사용하는 것이 매우 편리합니다. 출력 디버깅을 수행합니다.
요약:
이 기사와 이전 기사를 읽은 후에는 모두가 PHP 정규 표현식에 대해 잘 알고 있다고 생각합니다. 두 함수 모두 각자의 이해와 이해가 있으므로 도움이 되기를 바랍니다.
관련 추천:
위 내용은 PHP 정규 표현식의 preg_match_all 함수에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!