Reguläre Ausdrücke in Java mit Beispielen: für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Reguläre Ausdrücke in Java: Vollständiger Leitfaden für Anfänger



Reguläre Ausdrücke (regex) sind ein leistungsstarkes Werkzeug zum Suchen, Extrahieren und Ersetzen von Text nach einem Muster. In Java wird die Arbeit mit regulären Ausdrücken über das Paket java.util.regex realisiert. In diesem Artikel werden wir die Grundlagen regulärer Ausdrücke in Java erläutern, lernen, die Klassen Pattern und Matcher zu verwenden, und praktische Beispiele betrachten.



1. Grundlegende Klassen für die Arbeit mit regex in Java



In Java werden für die Arbeit mit regulären Ausdrücken zwei Hauptklassen verwendet:



  • Pattern — stellt einen kompilierten regulären Ausdruck dar.
  • Matcher — führt Such- und Vergleichsoperationen mit dem Text durch.


Es gibt auch die praktische Methode String.matches(), mit der Sie schnell überprüfen können, ob eine Zeichenkette einem Muster entspricht, aber sie ist weniger flexibel.



Beispiel 1: Einfache Übereinstimmung



import java.util.regex.*;

public class RegexExample1 { public static void main(String[] args) { String text = "Hallo, Welt! Java ist die beste Sprache."; String pattern = "Java";

Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(text);

if (m.find()) { System.out.println("Wort gefunden: " + m.group()); } else { System.out.println("Keine Übereinstimmungen"); } }}


Ausgabe: Wort gefunden: Java



2. Metazeichen und Zeichenklassen



Reguläre Ausdrücke verwenden spezielle Zeichen (Metazeichen) zur Beschreibung von Mustern:



  • . — jedes beliebige Zeichen (außer Zeilenumbruch)
  • \\d — Ziffer [0-9]
  • \\D — keine Ziffer
  • \\w — Buchstabe, Ziffer oder Unterstrich [a-zA-Z0-9_]
  • \\W — kein Wortzeichen
  • \\s — Leerzeichen
  • \\S — kein Leerzeichen
  • [abc] — eines der Zeichen a, b oder c
  • [^abc] — jedes Zeichen außer a, b, c


Beispiel 2: Suche nach Ziffern im Text



import java.util.regex.*;

public class RegexExample2 { public static void main(String[] args) { String text = "Meine Nummer: 123-456-7890"; String pattern = "\\\\d+"; // eine oder mehr Ziffern

Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(text);

while (m.find()) { System.out.println("Zahl gefunden: " + m.group()); } }}


Ausgabe:

Zahl gefunden: 123Zahl gefunden: 456Zahl gefunden: 7890


3. Quantifizierer und Grenzen



Quantifizierer geben an, wie oft ein Musterelement wiederholt werden soll:



  • * — 0 oder mehr Mal
  • + — 1 oder mehr Mal
  • ? — 0 oder 1 Mal
  • {n} — genau n Mal
  • {n,} — n oder mehr Mal
  • {n,m} — von n bis m Mal


Grenzen helfen anzugeben, wo sich das Muster befinden soll:



  • ^ — Anfang der Zeichenkette
  • $ — Ende der Zeichenkette
  • \\b — Wortgrenze


Beispiel 3: Überprüfung einer E-Mail-Adresse



import java.util.regex.*;

public class RegexExample3 { public static void main(String[] args) { String email = "user@example.com"; String pattern = "^[\\\\w.-]+@[\\\\w.-]+\\\\.\\\\w{2,}$";

boolean isValid = Pattern.matches(pattern, email); System.out.println("E-Mail ist gültig: " + isValid); }}


Ausgabe: E-Mail ist gültig: true



4. Erfassungsgruppen und Textersetzung



Erfassungsgruppen ermöglichen das Extrahieren von Teil

Blogs

Buchempfehlungen