Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Rückreferenz regulärer Ausdrücke_reguläre Ausdrücke

Detaillierte Erläuterung der Rückreferenz regulärer Ausdrücke_reguläre Ausdrücke

微波
微波Original
2017-06-28 13:49:301590Durchsuche

Dieser Artikel stellt hauptsächlich die Reguläre AusdrückeLerntutorial-RückreferenzierungReferenzRückreferenzierung vor und analysiert das Konzept, die Funktion und die Implementierungsfähigkeiten der Rückreferenzierung im Detail in Form von Beispielen Sie können sich auf das folgende Beispiel beziehen

Dieser Artikel beschreibt die Rückreferenzierung mit regulären Ausdrücken. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

In allen Beispielen sind die Ergebnisse des regulären Ausdrucks zwischen [und] im Quelltext enthalten. Einige Beispiele werden mit Java implementiert . Handelt es sich um die Verwendung regulärer Ausdrücke in Java selbst, wird dies an entsprechender Stelle erläutert. Alle Java-Beispiele werden unter JDK1.6.0_13 getestet.

1. Problemeinführung

Ein Problem beim Abgleichen von Titel-Tags (H1-H6) in HTML-Seiten:

Text:

<body>
<h1>Welcome to my page</H1>
Content is pided into twosections:<br>
<h2>Introduction</h2>
Information about me.
<H2>Hobby</H2>
Information about my hobby.
<h2>This is invalid HTML</h3>
</body>

Regulärer Ausdruck: bec64cdfd3b18ddf17d11124d921cd9d.*?c0d08c9e09935101747a568bd8607d7d

Ergebnis:

6c04bd5ca3fcae76e30b72ad730ca86d
【4a249f0d628e2318394fd9b75b4636b1Willkommen auf meiner Seite921186cad5e55f1481a45fdcd6c30f6e】
Der Inhalt ist in zwei Abschnitte unterteilt:0c6dc11e160d3b678d68754cc175188a 🎜>
【c1a436a314ed609750bd7c7d319db4daEinführung2e9b454fa8428549ca2e64dfac4625cd】
Informationen über mich.

【1b7994ba0f794e1b49742a6367e9e0c6Hobbyebe8950f0835d9653ff486769499854f】
Informationen über mein Hobby. [1-6]> entspricht dem Eröffnungs-Tag eines beliebigen Titels der ersten Ebene und unterscheidet nicht zwischen Groß- und Kleinschreibung. In diesem Beispiel entspricht es 4a249f0d628e2318394fd9b75b4636b1, fcf6a18e0a4be7b92e44a51a3417a6fb Entspricht 473f0a7621bec819994bb5020d29372a, 39528cedfa926ea0c01e69ef5b2ea9b0; hier wird das Lazy
-Metazeichen
verwendet, um den Text im Tag abzugleichen Übereinstimmung mit dem ersten Der Inhalt zwischen dem öffnenden Tag und dem letzten schließenden Tag. Aus den Ergebnissen geht jedoch hervor, dass auch ein ungültiges Tag gefunden wurde, nämlich c1a436a314ed609750bd7c7d319db4da39528cedfa926ea0c01e69ef5b2ea9b0, und es konnte überhaupt kein Treffer gefunden werden. Um dieses Problem zu lösen, müssen Sie eine Rückreferenz verwenden.
2. Rückverweisübereinstimmung

Rückverweis bedeutet, dass sich die zweite Hälfte des Musters auf den in der ersten Hälfte definierten Unterausdruck bezieht.

Die Verwendung, Unterteilung und Referenz von Unterausdrücken wurde bereits eingeführt. Lösen wir nun das vorherige Beispiel:

Text:

Regulärer Ausdruck: 2b0cba08e60dd5488139acd8c53df8f7.*?39befa42081ca1d8f189676913a49ab1

Ergebnis:

<body>
<h1>Welcome to my page</H1>
Content is pided into twosections:<br>
<h2>Introduction</h2>
Information about me.
<H2>Hobby</H2>
Information about my hobby.
<h2>This is invalid HTML</h3>
</body>
6c04bd5ca3fcae76e30b72ad730ca86d

【4a249f0d628e2318394fd9b75b4636b1Willkommen auf meiner Seite921186cad5e55f1481a45fdcd6c30f6e】

Der Inhalt ist in zwei Abschnitte unterteilt:0c6dc11e160d3b678d68754cc175188a

【c1a436a314ed609750bd7c7d319db4daEinführung2e9b454fa8428549ca2e64dfac4625cd】


Informationen über mich.

Informationen zu meinem Hobby.c1a436a314ed609750bd7c7d319db4daDies ist ungültiges HTML39528cedfa926ea0c01e69ef5b2ea9b0
Analyse: Zuerst das Muster des öffnenden Titel-Tags abgleichen< ; [hH]([1-6])>, verwenden Sie Klammern, um [1-6] als Unterausdruck zu behandeln, und das passende Endtitel-Tag-Muster ist ff4eb78c321859eb74ed45e91b2e966e, wobei 1 bedeutet, auf den ersten zu verweisen Unterausdruck, also ([1-6]) entspricht 1, dann entspricht 1 auch 1. Wenn er mit 2 übereinstimmt, entspricht 1 auch 2, sodass der letzte ungültig ist Tag wird nicht abgeglichen.

PS: Hier sind zwei weitere praktische Tools für reguläre Ausdrücke als Referenz:

JavaScriptOnline-Testtool für reguläre Ausdrücke:

http://tools.jb51.net/regex/javascriptOnline-Generierungstool für reguläre Ausdrücke:
http://tools.jb51.net/regex/create_reg

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Rückreferenz regulärer Ausdrücke_reguläre Ausdrücke. 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