Heim  >  Artikel  >  Backend-Entwicklung  >  Tutorial zu regulären Ausdrücken – ausführliche Erklärung zum Zuordnen einer Gruppe von Zeichen

Tutorial zu regulären Ausdrücken – ausführliche Erklärung zum Zuordnen einer Gruppe von Zeichen

高洛峰
高洛峰Original
2017-01-09 16:04:211239Durchsuche

Das Beispiel in diesem Artikel beschreibt die Methode zum Abgleichen einer Gruppe von Zeichen im Tutorial zu 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. Übereinstimmung mit einem von mehreren Zeichen

Ein Beispiel für die Übereinstimmung einer Textdatei, die mit na oder sa beginnt, im vorherigen Artikel „Tutorial zu regulären Ausdrücken: Detaillierte Erklärung der Übereinstimmung mit einem einzelnen Zeichen“. Der verwendete reguläre Ausdruck ist .a..txt. Wenn es eine andere Datei mit dem Namen cal.txt gibt, wird diese ebenfalls abgeglichen. Was soll ich tun, wenn ich nur Dateien abgleichen möchte, die mit na oder sa beginnen?

Da wir nur n oder s finden wollen, ist die Verwendung von n oder s offensichtlich nicht möglich. In regulären Ausdrücken können wir [und] verwenden, um einen Zeichensatz zu definieren, der mit [und] definiert wird. Alle Zeichen zwischen diesen beiden Metazeichen sind Teil des Zeichensatzes. Das übereinstimmende Ergebnis ist Text, der mit jedem Element übereinstimmen kann des Sets.

Sehen wir uns ein ähnliches Beispiel wie das vorherige an:

Text:

sales.txt

na1.txt

na2 .txt

sa1.txt

sanatxt.txt

cal.txt

Regulärer Ausdruck: [ns]a..txt

Ergebnis:

sales.txt

[na1.txt]

[na2.txt]

[sa1.txt]

sanatxt.txt

cal.txt

Analyse: Der hier verwendete reguläre Ausdruck beginnt mit [na] und entspricht keinem anderen Zeichen. [ und ] stimmen mit keinem Zeichen überein; sie definieren nur eine Reihe von Zeichen. Als nächstes stimmt a mit einem Zeichen überein, . txt stimmt mit dem txt-Zeichen selbst überein und die Übereinstimmungsergebnisse stimmen mit unseren Erwartungen überein.

Wenn jedoch eine der Dateien usa1.txt ist, wird sie ebenfalls abgeglichen. Dies ist ein Problem der Positionsanpassung, das später besprochen wird.

2. Verwenden Sie das Zeichensatzintervall

Was ist, wenn wir im obigen Beispiel nur Dateien abgleichen möchten, die mit na oder sa beginnen und denen eine Zahl folgt? Im regulären Ausdruck [ns]a..txt entspricht . jedem Zeichen, einschließlich Zahlen. Dieses Problem kann mit einem Zeichensatz gelöst werden:

sales.txt

na1.txt

na2.txt

sa1.txt

san.txt

sanatxt.txt

cal.txt

Regulärer Ausdruck: [ns]a[0123456789].txt

Ergebnis:

sales.txt

[na1.txt]

[na2.txt]

[sa1.txt]

san.txt

sanatxt.txt

cal.txt

Analyse: Wie Sie den Ergebnissen entnehmen können, ordnen wir nur Dateien zu, die mit na oder sa gefolgt von einer Zahl und san beginnen .txt wurde nicht abgeglichen, da der Zeichensatz [0123456789] verwendet wurde, um das dritte Zeichen nur auf Zahlen zu beschränken.

In regulären Ausdrücken werden häufig einige Zeichenintervalle verwendet, z. B. 0-9, a-z usw. Um die Definition von Zeichenintervallen zu vereinfachen, stellen reguläre Ausdrücke ein spezielles Metazeichen bereit – zum Definieren des Zeichenbereichs. Wie im obigen Beispiel können wir reguläre Ausdrücke verwenden, um Folgendes abzugleichen: [ns]a[0-9].txt, und das Ergebnis ist genau das gleiche wie oben.

Der Zeichenbereich ist nicht auf Zahlen beschränkt. Die folgenden sind zulässige Zeichenbereiche:

[A-F]: Entspricht allen Großbuchstaben von A bis F.

[A-Z]: Entspricht allen Großbuchstaben von A bis Z.

[A-z]: Entspricht allen Buchstaben vom ASCII-Zeichen A bis zum ASCII-Zeichen z. Dieses Intervall wird jedoch im Allgemeinen nicht verwendet, es ist nur ein Beispiel. Denn sie enthalten auch Zeichen wie [ und ^, die in ASCII zwischen Z und a angeordnet sind. Das erste und letzte Zeichen des Zeichenintervalls

kann ein beliebiges Zeichen in der ASCII-Zeichenliste sein. In der Praxis sind es jedoch am häufigsten Zahlen und alphabetische Zeichen.

Hinweis: Beim Definieren eines Zeichenintervalls darf das letzte Zeichen des Intervalls nicht kleiner sein als das erste Zeichen (z. B. [9-0]). - Da ein Metazeichen nur zwischen [ und ] erscheinen kann, ist es, wenn es sich irgendwo außerhalb von [ und ] befindet, nur ein gewöhnliches Zeichen und passt nur zu - sich selbst.

Im selben Zeichensatz können mehrere Zeichenbereiche angegeben werden, zum Beispiel: [0-9a-zA-Z] stimmt mit allen Groß- und Kleinbuchstaben und Zahlen überein.

Schauen wir uns ein Beispiel für übereinstimmende Farben auf einer Webseite an:

Text:

<span style="background-color:#3636FF;height:30px; width:60px;">测试</span>

Regulärer Ausdruck : # [0-9A-Fa-f] [0-9A-Fa-f] [0-9A-Fa-f] [0-9A-Fa-f] [0-9A-Fa-f] [0- 9A- Fa-f]

Ergebnis:7cd560ecc512978988606c112e14d7c8Test54bdf357c58b8a65c66d7c19c8e4d114

Analyse: Auf Webseiten wird Farbe im Allgemeinen als RGB-Wert ausgedrückt, der mit # beginnt, R steht für Rot, G steht für Grün und B steht für Blau. Jede Farbe kann durch verschiedene RGB-Kombinationen gemischt werden. RGB-Werte werden durch Hexadezimalwerte dargestellt, z. B. #000000 für Weiß, #FFFFFF für Schwarz und #FF0000 für Rot. Daher beginnt der reguläre Ausdruck zum Anpassen von Farben auf Webseiten mit #, gefolgt von demselben Satz von 6 [0-9A-Fa-f]-Zeichen (dies kann als #[0-9A-Fa-f]{6 abgekürzt werden). }, Dies wird später im Abschnitt „Wiederholungsabgleich“ besprochen.

3. Erhalten Sie Nichtübereinstimmung

Der Zeichensatz wird normalerweise verwendet, um einen Satz von Zeichen anzugeben, der mit einem von ihnen übereinstimmen muss. In einigen Fällen müssen wir jedoch das Gegenteil tun und einen Satz von Zeichen angeben, die nicht abgerufen werden müssen, mit anderen Worten: Mit Ausnahme der in diesem Zeichensatz enthaltenen Zeichen können alle anderen Zeichen abgeglichen werden.

Um beispielsweise Dateien abzugleichen, die mit na oder sa beginnen und denen keine Zahlen folgen:

Text:

sales.txt

na1. txt

na2.txt

sa1.txt

sanatxt.txt

san.txt

Regulärer Ausdruck: [ns]a [^0-9].txt

Ergebnis:

sales.txt

na1.txt

na2.txt

sa1 .txt

sanatxt.txt

[san.txt]

Analyse: Das in diesem Beispiel verwendete Muster ist genau das Gegenteil des vorherigen, des vorherigen [0- 9] stimmt nur mit Zahlen überein, und hier stimmt [^0-9] mit Nichtziffern überein.

Hinweis: ^ zwischen [ und ] bedeutet Negation. Wenn es am Anfang des regulären Ausdrucks erscheint, bedeutet dies, dass die Positionsübereinstimmung übereinstimmt, was später erläutert wird. Gleichzeitig gilt die Wirkung von ^ für alle Zeichen oder Zeichenintervalle in einem bestimmten Zeichensatz, nicht nur für das Zeichen oder Zeichenintervall, das unmittelbar auf das ^-Zeichen folgt. Beispielsweise bedeutet [^0-9a-z], dass keine Zahlen oder Kleinbuchstaben gefunden werden.

4. Zusammenfassung

Metazeichen [und] werden verwendet, um einen Satz von Zeichen zu definieren, und ihre Bedeutung besteht darin, dass sie mit einem der Zeichen im Satz übereinstimmen müssen. Es gibt zwei Möglichkeiten, einen Zeichensatz zu definieren: Die eine besteht darin, alle Zeichen aufzulisten, die andere darin, Metazeichen zu verwenden – angegeben in Form von Zeichenintervallen. Zeichensätze können mit dem Metazeichen ^ negiert werden, wodurch der angegebene Zeichensatz zwangsweise von der Vergleichsoperation ausgeschlossen wird. Mit Ausnahme der Zeichen im Zeichensatz können andere Zeichen abgeglichen werden.

Im nächsten Artikel werden wir die Verwendung einiger Metazeichen in regulären Ausdrücken diskutieren.

Ich hoffe, dass dieser Artikel für alle hilfreich ist, die reguläre Ausdrücke lernen möchten.

Ausführlichere Erklärungen zu Tutorials zu regulären Ausdrücken zum Abgleichen einer Zeichengruppe finden Sie auf der chinesischen PHP-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