Heim  >  Artikel  >  Java  >  Eine eingehende Analyse regulärer Java-Ausdrücke: Syntax von Quantoren, Zeichenklassen und Grenzübereinstimmung

Eine eingehende Analyse regulärer Java-Ausdrücke: Syntax von Quantoren, Zeichenklassen und Grenzübereinstimmung

WBOY
WBOYOriginal
2023-12-26 12:39:11525Durchsuche

Eine eingehende Analyse regulärer Java-Ausdrücke: Syntax von Quantoren, Zeichenklassen und Grenzübereinstimmung

Detaillierte Erklärung der Java-Syntax für reguläre Ausdrücke: Quantifizierer, Zeichenklassen und Grenzübereinstimmung

Reguläre Ausdrücke werden häufig beim String-Abgleich und bei der Verarbeitung in Java verwendet. In diesem Artikel werden Quantifizierer, Zeichenklassen und Grenzübereinstimmung in regulären Ausdrücken ausführlich vorgestellt und spezifische Codebeispiele gegeben.

1. Quantifizierer

Quantifizierer wird verwendet, um die Anzahl der Wiederholungen einer passenden Regel anzugeben. Zu den in Java häufig verwendeten Quantoren gehören:

  1. *: Entspricht dem vorherigen Zeichen 0-mal oder öfter.
  2. +: Passt mindestens einmal zum vorherigen Zeichen.
  3. ?: Entspricht dem vorherigen Zeichen 0 oder 1 Mal.
  4. {n}: Entspricht dem vorherigen Zeichen genau n-mal.
  5. {n,}: Entspricht dem vorherigen Zeichen mindestens n-mal.
  6. {n,m}: Entspricht dem vorherigen Zeichen mindestens n-mal und höchstens m-mal.

Das Folgende ist ein konkretes Beispiel:

String str = "abcccdddeeeee";

String pattern1 = "c*";
System.out.println(str.matches(pattern1)); // 输出true

String pattern2 = "d+";
System.out.println(str.matches(pattern2)); // 输出true

String pattern3 = "e?";
System.out.println(str.matches(pattern3)); // 输出false

String pattern4 = "c{2}";
System.out.println(str.matches(pattern4)); // 输出false

String pattern5 = "c{3,}";
System.out.println(str.matches(pattern5)); // 输出true

String pattern6 = "c{2,4}";
System.out.println(str.matches(pattern6)); // 输出true

Die Zeichenfolge im obigen Code ist eine Zeichenfolge, die verschiedene wiederholte Zeichen enthält. Als Nächstes werden einige reguläre Ausdrucksmuster definiert und mithilfe der Methode „matches()“ abgeglichen. Je nach Quantor können wir unterschiedliche Matching-Ergebnisse sehen.

2. Zeichenklasse

Die Zeichenklasse wird verwendet, um eine Sammlung von Zeichen anzugeben. Zeichenklassen in Java werden normalerweise mit [] definiert. Sie können Bereiche, Ausschlüsse und vordefinierte Zeichen verwenden, um eine Zeichenklasse zu definieren.

Hier ist ein konkretes Beispiel:

String str = "abc123";

String pattern1 = "[a-c]";
System.out.println(str.matches(pattern1)); // 输出true

String pattern2 = "[0-9]";
System.out.println(str.matches(pattern2)); // 输出false

String pattern3 = "[a-c0-9]";
System.out.println(str.matches(pattern3)); // 输出true

String pattern4 = "[^a-z]";
System.out.println(str.matches(pattern4)); // 输出false

String pattern5 = "\d";
System.out.println(str.matches(pattern5)); // 输出false

String pattern6 = "\D";
System.out.println(str.matches(pattern6)); // 输出true

Str im obigen Code ist eine Zeichenfolge, die Buchstaben und Zahlen enthält. Als nächstes definieren wir einige Muster für reguläre Ausdrücke und verwenden die Methode „matches()“ zum Abgleichen. Abhängig von der Charakterklasse können wir unterschiedliche Übereinstimmungsergebnisse sehen.

3. Grenzübereinstimmung

Grenzübereinstimmung wird verwendet, um die Position einer Übereinstimmung einzuschränken. In Java gibt es die folgenden Grenzübereinstimmungssymbole:

  1. ^: Übereinstimmung mit der Startposition der Zeichenfolge.
  2. $: Passen Sie die Endposition der Zeichenfolge an.
  3. : Wortgrenzen anpassen.
  4. B: Passen Sie Nicht-Wortgrenzen an.

Hier ist ein konkretes Beispiel:

String str = "hello world";

String pattern1 = "^hello";
System.out.println(str.matches(pattern1)); // 输出true

String pattern2 = "world$";
System.out.println(str.matches(pattern2)); // 输出true

String pattern3 = "\bhello";
System.out.println(str.matches(pattern3)); // 输出true

String pattern4 = "\Bworld";
System.out.println(str.matches(pattern4)); // 输出false

Der str im obigen Code ist ein String, der einen Satz enthält. Als nächstes definieren wir einige Muster für reguläre Ausdrücke und verwenden die Methode „matches()“ zum Abgleichen. Abhängig von den Grenzübereinstimmungssymbolen können wir unterschiedliche Übereinstimmungsergebnisse sehen.

Zusammenfassung:

Dieser Artikel stellt Quantifizierer, Zeichenklassen und Grenzübereinstimmung in regulären Java-Ausdrücken vor und gibt spezifische Codebeispiele. In der tatsächlichen Programmierung sind reguläre Ausdrücke sehr nützliche Werkzeuge, die den Abgleich und die Verarbeitung von Zeichenfolgen vereinfachen können. Wenn Sie die grundlegende Verwendung dieser regulären Ausdrücke beherrschen, können Sie mit Java Zeichenfolgen effizienter verarbeiten.

Das obige ist der detaillierte Inhalt vonEine eingehende Analyse regulärer Java-Ausdrücke: Syntax von Quantoren, Zeichenklassen und Grenzübereinstimmung. 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