首頁  >  文章  >  後端開發  >  PHP 正規表示式:如何符合 HTML 中的所有列表

PHP 正規表示式:如何符合 HTML 中的所有列表

王林
王林原創
2023-06-22 21:21:471498瀏覽

在網頁開發中,很常見的就是清單展示內容。而在處理和解析 HTML 檔案時,使用正規表示式可以更方便地匹配對應的內容。本文將介紹使用 PHP 正規表示式,如何搭配 HTML 中的所有清單。

  1. 網頁文字取得
    在處理 HTML 清單之前,需要先取得 HTML 檔案的文字內容。可以使用 PHP 的 file_get_contents 函數來取得 HTML 檔案的全部文字內容,程式碼如下:
$html = file_get_contents('example.html');
  1. #符合無序列表
    首先是無序列表。無序列表透過ul標籤和li標籤實現。 ul標籤用於表示整個列表,li標籤則代表列表中的每一項。我們可以使用 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

其中,[ou] 表示字元集,表示符合 o 或 u。使用 preg_match_all 函數進行匹配,程式碼如下:

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

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

以上程式碼將匹配 HTML 中的所有列表,並輸出匹配結果。

總結
在處理 HTML 檔案時,使用正規表示式可以更方便、快速地匹配對應的內容。在符合 HTML 清單時,可以根據不同類型清單的標籤進行比對。同時,也可以將三種列表類型的匹配方法合併,使用一個正規表示式來匹配所有列表,這樣更加簡單。

以上是PHP 正規表示式:如何符合 HTML 中的所有列表的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn