Das Beispiel in diesem Artikel beschreibt das Tutorial zum Positionsabgleich von regulären Ausdrücken. Teilen Sie es wie folgt mit allen:
Hinweis: In allen Beispielen sind die Ergebnisse der regulären Ausdrücke zwischen [und] im Quelltext enthalten. Einige Beispiele werden mit Java implementiert Der Einsatz regulärer Ausdrücke in Java selbst wird an den entsprechenden Stellen erläutert. Alle Java-Beispiele werden unter JDK1.6.0_13 getestet.
1. Einführung in das Problem
Wenn Sie ein bestimmtes Wort in einem Textstück zuordnen möchten (den mehrzeiligen Modus vorerst nicht berücksichtigen, der später eingeführt wird), können wir kann wie folgt aussehen:
Text: Gestern ist Geschichte, morgen ist ein Geheimnis, aber heute ist ein Geschenk.
Regulärer Ausdruck: ist
Ergebnis: Gestern [ist ] h [ist] Geschichte, morgen „ist“ ein Rätsel, aber heute „ist“ ein Geschenk.
Analyse: Ursprünglich wollte es nur mit dem Wort „ist“ übereinstimmen, aber es passte auch zu „ist“, das in anderen Worten enthalten ist . Um dieses Problem zu lösen, verwenden Sie Grenztrennzeichen. Dabei handelt es sich um Metazeichen, die in regulären Ausdrücken verwendet werden, um anzugeben, wo (oder an welchen Grenzen) der Vergleichsvorgang stattfinden soll.
2. Wortgrenzen
Eine häufig verwendete Grenze ist die durch das Qualifikationsmerkmal b angegebene Wortgrenze, die verwendet wird, um den Anfang und das Ende eines Wortes abzugleichen. Genauer gesagt entspricht es einer Position zwischen einem Zeichen, das zur Bildung eines Wortes verwendet werden kann (Buchstabe, Zahl, Unterstrich, das ist das Zeichen, das mit w übereinstimmt) und einem Zeichen, das nicht zur Bildung eines Wortes verwendet werden kann (wobei W mit Zeichen übereinstimmt). . Schauen wir uns das vorherige Beispiel an:
Text: Gestern ist Geschichte, morgen ist ein Rätsel, aber heute ist ein Geschenk.
Regulärer Ausdruck: bisb
Ergebnis: Gestern [ is】 Geschichte, morgen 【is】 ein Mysterium, aber heute 【is】 ein Geschenk.
Analyse: Im Originaltext gibt es ein Leerzeichen vor und nach dem Wort is, und dies entspricht dem Muster bisb ( das Leerzeichen ist eines der Zeichen, die zum Trennen von Wörtern verwendet werden). Das Wort „history“ enthält auch „is“, da davor und danach zwei Zeichen „h“ und „t“ stehen. Keines dieser beiden Zeichen kann mit „b“ übereinstimmen.
Wenn eine Wortgrenze nicht übereinstimmt, wird B verwendet. Zum Beispiel:
Text: Bitte geben Sie die neunstellige ID ein, wie sie auf Ihrem farbcodierten Passschlüssel erscheint.
Regulärer Ausdruck: B-B
Ergebnis: Bitte eingeben die [neunstellige] ID, wie sie auf Ihrem farbcodierten [Passwort] erscheint.
Analyse: B-B entspricht einem Bindestrich, der keine Wortgrenze davor und danach darstellt, in neunstelliger Form und Pass -key Es gibt keine Leerzeichen vor und nach dem Bindestrich, sodass eine Übereinstimmung möglich ist. Bei der Farbcodierung sind jedoch Leerzeichen vor und nach dem Bindestrich vorhanden, sodass eine Übereinstimmung nicht möglich ist.
3. Zeichenfolgengrenzen
Wortgrenzen können verwendet werden, um Positionen im Zusammenhang mit Wörtern abzugleichen (Wortanfang, Wortende, ganzes Wort usw.). Zeichenfolgengrenzen haben einen ähnlichen Zweck, werden jedoch verwendet, um Positionen in Bezug auf Zeichenfolgen abzugleichen (Anfang der Zeichenfolge, Ende der Zeichenfolge, gesamte Zeichenfolge usw.). Es gibt zwei Metazeichen, die zum Definieren von Zeichenfolgengrenzen verwendet werden: eines ist ^, das den Anfang der Zeichenfolge definiert, und das andere ist $, das verwendet wird, um das Ende der Zeichenfolge zu definieren.
Wenn Sie beispielsweise die Rechtmäßigkeit eines XML-Dokuments überprüfen möchten, beginnen alle rechtlichen XML-Dokumente mit :
Text:
<?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="ear"> </project>
Regulärer Ausdruck: ^s*
Ergebnis:
xml version="1.0" binding="UTF-8"?>
Analyse: ^ Entspricht dem Anfang einer Zeichenfolge, sodass ^s* mit dem Anfang einer Zeichenfolge und den darauffolgenden null oder mehr Leerzeichen übereinstimmt, da Leerzeichen, Tabulatoren, Zeilenumbrüche usw. vor dem Leerzeichen des -Tags zulässig sind Charaktere.
Die Verwendung des Metazeichens $ ist bis auf den Unterschied in der Position genau die gleiche wie die Verwendung von ^. Um beispielsweise zu überprüfen, ob eine HTML-Seite mit