>  기사  >  백엔드 개발  >  PHP 정규 표현식: HTML의 모든 목록을 일치시키는 방법

PHP 정규 표현식: HTML의 모든 목록을 일치시키는 방법

王林
王林원래의
2023-06-22 21:21:471539검색

웹 개발에서는 콘텐츠를 목록에 표시하는 것이 매우 일반적입니다. HTML 파일을 처리하고 구문 분석할 때 정규식을 사용하면 해당 콘텐츠를 보다 쉽게 ​​일치시킬 수 있습니다. 이 기사에서는 PHP 정규식을 사용하여 HTML의 모든 목록을 일치시키는 방법을 소개합니다.

  1. 웹페이지 텍스트 획득
    HTML 목록을 처리하기 전에 먼저 HTML 파일의 텍스트 콘텐츠를 획득해야 합니다. PHP의 file_get_contents 함수를 사용하여 HTML 파일의 전체 텍스트 내용을 가져올 수 있습니다. 코드는 다음과 같습니다.
$html = file_get_contents('example.html');
  1. 순서가 없는 목록 일치
    첫 번째는 순서가 없는 목록입니다. 순서가 지정되지 않은 목록은 ul 태그와 li 태그를 통해 구현됩니다. ul 태그는 목록 전체를 나타내고, li 태그는 목록의 각 항목을 나타냅니다. ff6d136ddc5fdfeffaf53ff6ee95f185(.*?)929d1f5ca49e04fdcb27f9465b944689 정규식을 사용하여 순서가 지정되지 않은 모든 목록을 일치시킬 수 있습니다. 그 중 ?는 이번 매칭이 탐욕스럽지 않고, 매칭된 내용을 최대한 작게 선택하여 일괄 매칭을 위해 여러 개의 목록을 함께 연결하지 않는다는 뜻이다. 전체 코드는 다음과 같습니다. ff6d136ddc5fdfeffaf53ff6ee95f185(.*?)929d1f5ca49e04fdcb27f9465b944689 的正则表达式来匹配所有无序列表。其中,?表示这个匹配是非贪婪的,匹配到的内容将被尽量小地挑选出来,这样就不会将多个列表连在一起批量匹配了。完整代码如下:
preg_match_all('/<ul>(.*?)</ul>/s', $html, $matches);

foreach ($matches[0] as $key => $value) {
    echo $key . ': ' . $value . '<br>';
}

以上代码中,preg_match_all 函数可以进行多次匹配,并将匹配结果保存到 $matches 中。而 /s 则表示 . 匹配包括换行符在内的所有字符。最后使用 foreach 遍历输出匹配的结果。

  1. 匹配有序列表
    有序列表通过ol和li标签实现。ol标签用于表示有序列表,而li表示其中的每一项。正则表达式和以上的无序列表匹配方法基本上相同,匹配有序列表的正则表达式是:
preg_match_all('/<ol>(.*?)</ol>/s', $html, $matches);

foreach ($matches[0] as $key => $value) {
    echo $key . ': ' . $value . '<br>';
}

同样地,可以使用 preg_match_all 函数进行匹配,并使用 foreach 输出结果。

  1. 匹配自定义列表
    自定义列表通过dl、dt和dd标签实现。dl 标签用于表示定义列表,dt 标签用于表示自定义项目的名称,而 dd 标签则用于表示自定义项目的描述。正则表达式如下:
preg_match_all('/<dl>(.*?)</dl>/s', $html, $matches);

foreach ($matches[0] as $key => $value) {
    echo $key . ': ' . $value . '<br>';
}

同样地,使用 preg_match_all 函数进行匹配,并使用 foreach 输出结果即可。

  1. 匹配所有列表
    以上三种列表的匹配方法虽然不同,但是正则表达式都非常类似。如果需要匹配 HTML 中的所有列表,可以使用一个简单的正则表达式。

匹配所有列表的正则表达式为:/04585a9939123efd3b029e4061973694(.*?)2f93380ee9d9196dac17b821a744d509/s

preg_match_all('/<[ou]l>(.*?)</[ou]l>/s', $html, $matches);

foreach ($matches[0] as $key => $value) {
    echo $key . ': ' . $value . '<br>';
}

위 코드에서 preg_match_all 함수는 여러 일치 항목을 수행하고 일치 결과를 $matches에 저장할 수 있습니다. 그리고 /s는 줄바꿈을 포함한 모든 문자와 일치함을 의미합니다. 마지막으로 foreach를 사용하여 일치하는 결과를 탐색하고 출력합니다.

    순서 목록 일치

    순서 목록은 ol 및 li 태그를 통해 구현됩니다. ol 태그는 순서가 지정된 목록을 나타내는 데 사용되는 반면, li는 목록의 각 항목을 나타냅니다. 정규식은 기본적으로 위의 정렬되지 않은 목록 일치 방법과 동일합니다. 정렬된 목록을 일치시키는 정규식은 다음과 같습니다.


    rrreee

    마찬가지로 일치에는 preg_match_all 함수를 사용하고 결과를 출력하려면 foreach를 사용할 수 있습니다. 🎜
      🎜맞춤 목록 일치🎜맞춤 목록은 dl, dt 및 dd 태그를 통해 구현됩니다. dl 태그는 정의 목록을 나타내는 데 사용되며, dt 태그는 맞춤 항목의 이름을 나타내는 데 사용되며, dd 태그는 맞춤 항목의 설명을 나타내는 데 사용됩니다. 정규식은 다음과 같습니다. 🎜🎜rrreee🎜마찬가지로 preg_match_all 함수를 사용하여 일치시키고, foreach를 사용하여 결과를 출력합니다. 🎜
        🎜모든 목록 일치🎜위 세 목록의 일치 방법은 다르지만 정규식은 매우 유사합니다. HTML의 모든 목록을 일치시켜야 하는 경우 간단한 정규식을 사용할 수 있습니다. 🎜🎜🎜모든 목록과 일치하는 정규식은 /04585a9939123efd3b029e4061973694(.*?)2f93380ee9d9196dac17b821a744d509/s입니다. 🎜🎜그 중 [ou]는 문자 집합을 나타내며, o 또는 u와 일치한다는 의미입니다. 일치를 위해 preg_match_all 함수를 사용하세요. 코드는 다음과 같습니다. 🎜rrreee🎜위 코드는 HTML의 모든 목록을 일치시키고 일치하는 결과를 출력합니다. 🎜🎜요약🎜HTML 파일을 처리할 때 정규식을 사용하면 해당 내용을 보다 편리하고 빠르게 일치시킬 수 있습니다. HTML 목록을 일치시킬 때 다양한 목록 유형의 태그를 기반으로 일치시킬 수 있습니다. 동시에 세 가지 목록 유형의 일치 방법을 결합하고 하나의 정규식을 사용하여 모든 목록을 일치시킬 수도 있으므로 더욱 편리합니다. 🎜

위 내용은 PHP 정규 표현식: HTML의 모든 목록을 일치시키는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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