Tutorial zu regulären Ausdrücken – ausführliche Erklärung zum Abgleichen eines einzelnen Zeichens

高洛峰
Freigeben: 2023-03-04 17:34:01
Original
1869 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt das Tutorial zu regulären Ausdrücken zum Abgleichen eines einzelnen Zeichens. 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.

Java-Testcode:

/**
 * 根据正则表达式和要匹配的源文本,输出匹配结果
 * @param regex 正则表达式
 * @param sourceText 要匹配的源文本
 */
public static void matchAndPrint(String regex, String sourceText){
  Pattern pattern = Pattern.compile(regex);
  Matcher matcher = pattern.matcher(sourceText);
  while(matcher.find()){
    System.out.println(matcher.group());
  }
}
Nach dem Login kopieren

1. Passender Klartext

Es gibt nur ein passendes Ergebnis

Schauen wir uns zunächst a an einfacher regulärer Ausdruck Die Formel ist heute, obwohl sie selbst Klartext ist, ein regulärer Ausdruck. Schauen wir uns ein Beispiel an:

Quellentext: Gestern ist Geschichte, morgen ist ein Geheimnis, aber heute ist ein Geschenk.

Regulärer Ausdruck: heute

Ergebnis: Gestern ist Geschichte, morgen ist ein Rätsel, aber „heute“ ist ein Geschenk.

Analyse: Der hier verwendete reguläre Ausdruck ist Klartext, der heute im Quelltext übereinstimmt.

Rufen Sie die matchAndPrint-Methode auf und das Ausgabeergebnis ist:

heute

2. Es gibt mehrere übereinstimmende Ergebnisse

Quelltext: Gestern ist Geschichte, Morgen ist ein Rätsel, aber heute ist ein Geschenk.

Regulärer Ausdruck: ist

Ergebnis: Gestern ist Geschichte, morgen ist ein Rätsel, aber „heute“ ist ein Geschenk.

Analyse: Im Quelltext gibt es drei Is, es werden aber vier Is ausgegeben, da auch die Is im Verlauf abgeglichen werden.

ruft die matchAndPrint-Methode auf und das Ausgabeergebnis ist:

is

is

is

is

3. Probleme mit der Groß-/Kleinschreibung

Bei regulären Ausdrücken wird die Groß-/Kleinschreibung beachtet, aber viele Implementierungen regulärer Ausdrücke unterstützen auch Vergleichsvorgänge, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird. Verwenden Sie in JavaScript das i-Flag, um eine Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen. Wenn Sie in Java beim Kompilieren des regulären Ausdrucks die Groß- und Kleinschreibung nicht berücksichtigen möchten, können Sie Folgendes angeben:

Patternpattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Nach dem Login kopieren

2. Übereinstimmung mit einem beliebigen Zeichen

Die zuvor gesehenen regulären Ausdrücke sind alle Sie sind statischer Klartext und spiegeln überhaupt nicht die Leistungsfähigkeit regulärer Ausdrücke wider. Als nächstes sehen wir uns an, wie man reguläre Ausdrücke verwendet, um unvorhersehbare Zeichen abzugleichen.

In regulären Ausdrücken werden Sonderzeichen (oder Zeichensammlungen) verwendet, um anzugeben, wonach gesucht werden soll. Das Zeichen . (englischer Statuspunkt) kann mit jedem einzelnen Zeichen übereinstimmen. Entspricht dem ?-Zeichen in DOS und dem _-Zeichen (Unterstrich) in SQL. Beispiel: Der reguläre Ausdruck c.t passt zu cat, cut, cot usw. Schauen wir uns ein Beispiel an.

Text:

orders1.txt

orders2.txt

sales1.txt

salesA.txt

orders3.txt

sales2.txt

sales.txt

Regulärer Ausdruck: sales.

Ergebnis:

orders1.txt

orders2.txt

[sales1].txt

[salesA].txt

orders3.txt

[sales2].txt

【sales.】txt

Analyse: Der reguläre Ausdruck sales findet den Dateinamen, der aus der Zeichenfolge sales und einer anderen Zeichenfolge besteht. Zahlen und sich selbst. 4 von 7 Dateien stimmen mit diesem Muster überein.

Wenn die matchAndPrint-Methode aufgerufen wird, lautet das Ausgabeergebnis:

sales1

salesA

sales2

sales.

3. Passen Sie Sonderzeichen an

Zeichen haben in regulären Ausdrücken eine besondere Bedeutung. Wenn Sie ein . im Muster benötigen, müssen Sie einen Weg finden, dem regulären Ausdruck mitzuteilen, dass Sie das Zeichen selbst und nicht seine spezielle Bedeutung im regulären Ausdruck benötigen. Dazu müssen Sie das Zeichen maskieren, indem Sie es voranstellen. Es ist auch ein Metazeichen (ein Metazeichen, das darauf hinweist, dass dieses Zeichen eine besondere Bedeutung hat und nicht die Bedeutung des Zeichens selbst). Betrachten Sie das folgende Beispiel.

Suchen Sie nach Dateien, die mit „na“ oder „sa“ beginnen, unabhängig davon, welche Zahl darauf folgt.

Text:

sales.txt

na1.txt

na2.txt

sa1.txt

sanatxt.txt

Regulärer Ausdruck: .a..txt

Ergebnis:

[sal]es.txt

[na1].txt

[na2].txt

[sa1].txt

[sanatxt].txt

Analyse: Dieser reguläre Ausdruck kombiniert na1.txt und na2.txt , sa1.txt wurde gefunden, aber es wurden auch 2 unerwartete Ergebnisse gefunden. Weil das .-Zeichen im regulären Ausdruck .a..txt mit jedem Zeichen übereinstimmt. Um das .-Zeichen selbst abzugleichen, müssen Sie Escapezeichen verwenden. Das Ändern des regulären Ausdrucks in .a..txt kann unseren Anforderungen gerecht werden.

Hinweis: Wenn Sie Java verwenden, sollte der reguläre Ausdruck .a..txt als .a.\.txt geschrieben werden, da es sich in der Java-Sprache auch um ein Escape-Zeichen handelt.

4. Zusammenfassung

Reguläre Ausdrücke werden oft als Muster bezeichnet. Es handelt sich tatsächlich um Zeichenfolgen, die aus einigen Zeichen bestehen. Diese Zeichen können gewöhnliche Zeichen (Klartext) oder Metazeichen (Sonderzeichen mit besonderer Bedeutung) sein. Hier finden Sie eine Einführung in die Verwendung gewöhnlicher Zeichen und Metazeichen zur Zuordnung von Einheitenzeichen. .kann mit jedem Zeichen übereinstimmen. Wird verwendet, um Zeichen zu maskieren. In regulären Ausdrücken beginnen Zeichenfolgen mit besonderer Bedeutung immer mit einem Zeichen. Im nächsten Artikel schauen wir uns an, wie man Gruppen von Zeichen zuordnet.

Weitere Tutorials zu regulären Ausdrücken zum Abgleichen eines einzelnen Zeichens und verwandte Artikel finden Sie auf der chinesischen PHP-Website!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage