Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Funktion preg_match_all in regulären PHP-Ausdrücken

Detaillierte Erläuterung der Funktion preg_match_all in regulären PHP-Ausdrücken

黄舟
黄舟Original
2017-11-11 11:25:3812239Durchsuche

Funktion im regulären PHP-Ausdruck Wir haben bereits eine preg_match-Funktion für Sie erstellt. Ich glaube, Sie alle wissen etwas darüber. Was ist also die spezifische Verwendung der preg_match_all-Funktion im regulären PHP-Ausdruck? Heute werden wir Sie mit der detaillierten Erklärung der preg_match_all-Funktion in regulären PHP-Ausdrücken vertraut machen!

Bevor Sie reguläre Ausdrücke verstehen, müssen Sie sich einige Grundkenntnisse über häufig verwendete reguläre Ausdrücke aneignen. Wenn Sie sich diese nicht merken können, können Sie sie jederzeit nachschlagen Sie müssen nur ein paar Das Sonderzeichen verwenden, damit reguläre Ausdrücke etwas Besonderes sind. Weitere Informationen finden Sie hier.

Detaillierte Anweisungen zur Funktion preg_match_all finden Sie im PHP-Handbuch. In diesem Artikel wird preg_match_all verwendet, um die Wirkung regulärer Ausdrücke zu testen.

Beispielcode:

$html = &#39;<p id="biuuu">jb51.net</p><p id="biuuu_2">jb51.net2</p><p id="biuuu_3">jb51.net3</p>&#39;;

Beispielanforderungen: Nehmen Sie die ID und den Inhalt jedes p-Elements heraus, z. B. biuuu, biuuu_2, biuuu_3, jb51.net, jb51.net2 und jb51.net3 (einige häufig verwendete Website-Grabbing-Methoden werden auf diese Weise abgeglichen)

Analyse:

String ist eine Basis HTML-Element , jedes p-Element entspricht einer ID und einem Inhalt und ist unabhängig. Überlegen Sie zunächst, wie Sie den ID-Wert und den Inhalt innerhalb eines p extrahieren, z. B. jb51.net, und dann andere ähnliche Elemente abgleichen. Element. Aus einem p müssen zwei Werte entnommen werden, d ). Reguläre Ausdrücke, die häufig in Ausdrücken verwendet werden, haben die folgende Form:

<p id="(biuuu)">(jb51.net)</p> 
<p id="(表达式1)">(表达式2)</p>

Okay, verwenden Sie die obigen Klammern, um den Bereich zu teilen, der abgeglichen werden muss, und Dann können wir davon ausgehen, dass eine ID aus Buchstaben, Zahlen oder Unterstrichen besteht. Dies kann durch die Verwendung von eckigen Klammern erreicht werden:

Ausdruck 1:

[a-zA-Z0-9_]+ (表示匹配大小写字母,数字和下划线)

Dann wie man Ausdruck 2 abgleicht, denn der Inhalt der ID kann ein beliebiges Zeichen sein, aber seien Sie vorsichtig, er kann nicht mit den Zeichen c4d3a889a2f15836e38a1446190c9f1a(Ausdruck 2)94b3e26ee717c64999d7867364b1b4a3/
Achten Sie auf die doppelten Anführungszeichen " und /, die mit Escape-Zeichen maskiert werden müssen , und fügen Sie dann die ersten beiden Ausdrücke ein,
lautet wie folgt:

 &#39;\"([a-z0-9_]+)\"&#39;>/<p id=\"([a-z0-9_]+)\">([^<>]+)<\/p>/

Auf diese Weise wird ein regulärer Ausdruck erstellt, der dem ID-Wert und Inhalt jedes einzelnen Ausdrucks entspricht Das p-Element wird implementiert und dann wird die Funktion preg_match_all zum Testen wie folgt verwendet:

$html = &#39;<p id="biuuu">jb51.net</p><p id="biuuu_2">jb51.net2</p><p id="biuuu_3">jb51.net3</p>&#39;; 
preg_match_all('/([^<>]+)<\/p>/',$html,$result); 
var_dump($result);

Ergebnis:

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" 
  } 
  }

Es gibt insgesamt drei Ausdrücke. Der Wert entspricht jedem Ausdruck wird jeweils in Form eines Arrays angezeigt und gespeichert. Auf diese Weise werden die ID und der Inhalt jedes p-Elements herausgenommen. Das Wichtigste bei der Verwendung regulärer Ausdrücke ist, zu wissen, was benötigt wird, und dann einen Abgleich damit durchzuführen. und haben Sie eine klare Vorstellung und verwenden Sie die Funktion preg_match_all, um das Ausgabe-Debugging durchzuführen, was sehr praktisch ist. Zusammenfassung:

Nachdem ich diesen Artikel und den vorherigen Artikel gelesen habe, glaube ich, dass jeder seine eigene hat Verständnis und Verständnis dieser beiden Funktionen in PHP regulären Ausdrücken. Die Arbeit ist hilfreich

Verwandte Empfehlungen:

Detaillierte Erläuterung der preg_match-Funktion in regulären PHP-Ausdrücken

E-Mail-Adress-Fall zur Überprüfung regulärer PHP-Ausdrücke


Beispielanalyse regulärer PHP-Ausdrücke


Detaillierte Einführung in reguläre PHP-Ausdrücke

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Funktion preg_match_all in regulären PHP-Ausdrücken. 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