Heim  >  Artikel  >  Backend-Entwicklung  >  Regulärer PHP-Ausdruck in Aktion: passende HTML-Attribute

Regulärer PHP-Ausdruck in Aktion: passende HTML-Attribute

PHPz
PHPzOriginal
2023-06-22 21:29:061551Durchsuche

In der Webentwicklung sind HTML-Attribute eines der sehr wichtigen Elemente. In der tatsächlichen Entwicklung ist es jedoch häufig erforderlich, Attribute abzugleichen und zu extrahieren. Zu diesem Zeitpunkt werden reguläre Ausdrücke zu einem sehr effektiven Werkzeug.

In diesem Artikel wird die Verwendung regulärer PHP-Ausdrücke zum Abgleichen von HTML-Attributen vorgestellt und anhand konkreter Fälle erläutert. Zunächst müssen wir die allgemeine Struktur von HTML-Attributen verstehen. Ein HTML-Attribut besteht normalerweise aus einem Attributnamen und einem Attributwert, die durch ein Gleichheitszeichen verbunden sind. Zum Beispiel: class="container", id="header" usw. Daher müssen wir reguläre Ausdrücke verwenden, um Attributnamen und Attributwerte genau abzugleichen.

Schauen wir uns zunächst einen einfachen Fall an:

<div class="container">
  <h1 id="header">Welcome to our website!</h1>
  <p>Here you can find lots of interesting articles.</p>
</div>

Wir müssen das Klassenattribut darin abgleichen:

preg_match('/class="([^"]*)"/', $html, $matches);

Dieser reguläre Ausdruck bedeutet: match class =" Zeichenfolge, und suchen Sie dann direkt danach alle Zeichen, die keine Anführungszeichen enthalten, bis die Anführungszeichen erneut angezeigt werden. Auf diese Weise können wir den Wert des Klassenattributs korrekt abgleichen. Nach Abschluss können wir die Übereinstimmungsergebnisse durch erhalten die $matches-Variable.

Nehmen wir als nächstes ein etwas komplizierteres Beispiel. Angenommen, wir möchten alle Attribute, die das Datenpräfix enthalten, abgleichen und ihre Attributnamen und -werte ausgeben Unten gezeigt:

preg_match_all('/data-(w+)="([^"]*)"/', $html, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
  echo '属性名:' . $match[1] . ',属性值:' . $match[2] . '<br>';
}

Dieser reguläre Ausdruck bedeutet: Passen Sie den Attributnamen an, der mit data-, einem beliebigen Buchstaben oder einer beliebigen Zahl beginnt, und der Attributwert in der Mitte (1*) ist derselbe wie im vorherigen Beispiel Mit der Funktion preg_match_all können wir alle Attribute auf einmal abgleichen, die die Anforderungen erfüllen, und ihre Attributnamen und Attributwerte ausgeben, indem wir das Array $matches durchlaufen. Schauen wir uns abschließend eine häufig gestellte Frage an: Wie werden Attribute abgeglichen? Wessen Attributwerte enthalten bestimmte Zeichen? Zu diesem Zeitpunkt müssen wir die Vorwärtssuche im regulären Ausdruck verwenden, wie unten gezeigt:

preg_match_all('/class="([^"]*alert[^"]*)"/', $html, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
  echo '属性值中包含“alert”的class属性值为:' . $match[1] . '<br>';
}

Dieser reguläre Ausdruck bedeutet: Übereinstimmung mit der Zeichenfolge von class=", Dann finden Sie ein beliebiges Zeichen, das enthält kein unmittelbar darauf folgendes Anführungszeichen, bis erneut ein Anführungszeichen erscheint. In diesem Zeichenabschnitt muss die Zeichenfolge „alert“ enthalten sein. Mithilfe der Vorwärtssuche können wir Attributwerte, die bestimmte Zeichen enthalten, genau abgleichen.

Zusammenfassend können wir anhand der oben genannten Fälle sehen, dass die Verwendung regulärer Ausdrücke in der tatsächlichen Entwicklung sehr flexibel und leistungsstark ist. Ich hoffe, dass dieser Artikel den Lesern helfen kann, reguläre PHP-Ausdrücke besser zu beherrschen und ihren enormen Wert für die tatsächliche Entwicklung zu erkunden.


"

Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck in Aktion: passende HTML-Attribute. 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