Heim  >  Artikel  >  Backend-Entwicklung  >  Reguläre PHP-Ausdrücke: Wie alle Listen in HTML abgeglichen werden

Reguläre PHP-Ausdrücke: Wie alle Listen in HTML abgeglichen werden

王林
王林Original
2023-06-22 21:21:471499Durchsuche

In der Webentwicklung kommt es häufig vor, Inhalte in Listen anzuzeigen. Beim Verarbeiten und Parsen von HTML-Dateien können reguläre Ausdrücke verwendet werden, um den entsprechenden Inhalt einfacher abzugleichen. In diesem Artikel wird erläutert, wie alle Listen in HTML mithilfe regulärer PHP-Ausdrücke abgeglichen werden.

  1. Texterfassung für Webseiten
    Bevor Sie die HTML-Liste verarbeiten, müssen Sie zunächst den Textinhalt der HTML-Datei abrufen. Sie können die Funktion file_get_contents von PHP verwenden, um den gesamten Textinhalt der HTML-Datei abzurufen. Der Code lautet wie folgt:
$html = file_get_contents('example.html');
  1. Übereinstimmung mit der ungeordneten Liste
    Die erste ist die ungeordnete Liste. Ungeordnete Listen werden durch ul-Tags und li-Tags implementiert. Das ul-Tag wird verwendet, um die gesamte Liste darzustellen, und das li-Tag repräsentiert jedes Element in der Liste. Wir können den regulären Ausdruck von ff6d136ddc5fdfeffaf53ff6ee95f185(.*?)929d1f5ca49e04fdcb27f9465b944689 verwenden, um alle ungeordneten Listen abzugleichen. Darunter bedeutet ?, dass diese Übereinstimmung nicht gierig ist und der übereinstimmende Inhalt so klein wie möglich ausgewählt wird, sodass nicht mehrere Listen für den Stapelabgleich miteinander verbunden werden. Der vollständige Code lautet wie folgt: 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>';
}

Im obigen Code kann die Funktion preg_match_all mehrere Übereinstimmungen durchführen und die Übereinstimmungsergebnisse in $matches speichern. Und /s bedeutet . entspricht allen Zeichen, einschließlich Zeilenumbrüchen. Verwenden Sie abschließend foreach, um die übereinstimmenden Ergebnisse zu durchlaufen und auszugeben.

    Geordnete Liste abgleichen

    Geordnete Liste wird durch ol- und li-Tags implementiert. Das ol-Tag wird verwendet, um eine geordnete Liste darzustellen, und li repräsentiert jedes Element darin. Reguläre Ausdrücke sind im Grunde die gleichen wie die oben beschriebene Methode zum Abgleichen geordneter Listen. Der reguläre Ausdruck zum Abgleichen geordneter Listen lautet:


    rrreee

    Ähnlich können Sie die Funktion preg_match_all zum Abgleichen und foreach verwenden, um die Ergebnisse auszugeben. 🎜
      🎜Benutzerdefinierte Listen anpassen🎜Benutzerdefinierte Listen werden über die Tags dl, dt und dd implementiert. Das dl-Tag wird verwendet, um die Definitionsliste darzustellen, das dt-Tag wird verwendet, um den Namen des benutzerdefinierten Elements darzustellen, und das dd-Tag wird verwendet, um die Beschreibung des benutzerdefinierten Elements darzustellen. Der reguläre Ausdruck lautet wie folgt: 🎜🎜rrreee🎜Verwenden Sie in ähnlicher Weise die Funktion preg_match_all zum Abgleichen und verwenden Sie foreach, um die Ergebnisse auszugeben. 🎜
        🎜Alle Listen abgleichen🎜Obwohl die Abgleichsmethoden der oben genannten drei Listen unterschiedlich sind, sind die regulären Ausdrücke sehr ähnlich. Wenn Sie alle Listen in HTML abgleichen müssen, können Sie einen einfachen regulären Ausdruck verwenden. 🎜🎜🎜Der reguläre Ausdruck, der mit allen Listen übereinstimmt, ist: /04585a9939123efd3b029e4061973694(.*?)2f93380ee9d9196dac17b821a744d509/s. 🎜🎜Unter diesen stellt [ou] den Zeichensatz dar, was bedeutet, dass o oder u übereinstimmen. Verwenden Sie zum Abgleichen die Funktion preg_match_all. Der Code lautet wie folgt: 🎜rrreee🎜Der obige Code gleicht alle Listen in HTML ab und gibt die übereinstimmenden Ergebnisse aus. 🎜🎜Zusammenfassung🎜Bei der Verarbeitung von HTML-Dateien kann die Verwendung regulärer Ausdrücke den entsprechenden Inhalt bequemer und schneller abgleichen. Beim Abgleichen von HTML-Listen können Sie einen Abgleich basierend auf den Tags verschiedener Listentypen durchführen. Gleichzeitig können Sie auch die Matching-Methoden der drei Listentypen kombinieren und einen regulären Ausdruck verwenden, um alle Listen abzugleichen, was praktischer ist. 🎜

Das obige ist der detaillierte Inhalt vonReguläre PHP-Ausdrücke: Wie alle Listen in HTML abgeglichen werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn