Musterabgleich mit Regex
Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy — Lektion 47 von 59.
Die Klassen Pattern und Matcher bieten leistungsstarke Werkzeuge für Regex-Operationen in Java. Zuerst verstehen wir, wie man sie verwendet:
Erstellen Sie ein pattern mit Pattern.compile():
Pattern pattern = Pattern.compile("cat");
// Creates a pattern to find "cat"Erstellen Sie einen matcher für Ihren Text:
String text = "The cat and dog";
Matcher matcher = pattern.matcher(text);
// Creates a matcher for the textJetzt können Sie Übereinstimmungen mit matcher.find() finden:
while (matcher.find()) {
System.out.println("Found at: " + matcher.start());
}Nach der Ausführung des obigen Codes lautet die Ausgabe: Found at: 4
Die Methoden verstehen:
<b>matcher.find()</b>- Sucht nach dem nächsten Vorkommen des Musters im Text- Gibt
truezurück, wenn eine Übereinstimmung gefunden wurde - Gibt
falsezurück, wenn keine weiteren Übereinstimmungen existieren - Deshalb verwenden wir es in einer
while-Schleife – um alle Vorkommen zu finden
- Gibt
<b>matcher.start()</b>- Gibt den Startindex (Position) der letzten vonfind()gefundenen Übereinstimmung zurück- In unserem Beispiel beginnt „cat“ an Index 4 in „The cat and dog“
- Muss nach einem erfolgreichen
find()aufgerufen werden
Beispiel mit mehreren Treffern:
Pattern pattern = Pattern.compile("cat");
Matcher matcher = pattern.matcher("cat and cat");
while (matcher.find()) {
System.out.println("Found at: " + matcher.start());
}
// Output:
// Found at: 0
// Found at: 8Aufgabe
EinfachErstellen Sie eine Methode namens findWords, die zwei Argumente nimmt:
- Ein String (
text) zum Durchsuchen - Ein String (
word) zum Finden
Die Methode sollte:
- Pattern und Matcher verwenden, um alle Vorkommen des Wortes zu finden
- Einen String zurückgeben, der die Positionen enthält, an denen das Wort gefunden wurde
- Positionen sollten durch Leerzeichen getrennt sein
Rückgabemeldungen sollten sein:
- Wenn irgendeine Eingabe null ist: return "Invalid input"
- Wenn das Wort nicht gefunden: return "Not found"
- Wenn gefunden: Positionen zurückgeben (z. B. "4 10 15")
Spickzettel
Die Klassen Pattern und Matcher bieten leistungsstarke Tools für Regex-Operationen in Java.
Erstellen Sie ein pattern mit Pattern.compile():
Pattern pattern = Pattern.compile("cat");
// Erstellt ein Pattern, um "cat" zu findenErstellen Sie einen matcher für Ihren Text:
String text = "The cat and dog";
Matcher matcher = pattern.matcher(text);
// Erstellt einen Matcher für den TextFinden Sie Übereinstimmungen mit matcher.find():
while (matcher.find()) {
System.out.println("Found at: " + matcher.start());
}Wichtige Methoden:
<b>matcher.find()</b>- Durchsucht nach dem nächsten Vorkommen des Patterns- Gibt
truezurück, wenn gefunden,false, wenn keine weiteren Übereinstimmungen - In einer Schleife verwenden, um alle Vorkommen zu finden
- Gibt
<b>matcher.start()</b>- Gibt den Startindex der letzten gefundenen Übereinstimmung zurück- Nach einem erfolgreichen
find()aufrufen
- Nach einem erfolgreichen
Probier es selbst
import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static String findWords(String text, String word) {
// Schreibe deinen Code hier
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String word = scanner.nextLine();
if (text.equals("null")) text = null;
if (word.equals("null")) word = null;
System.out.println(findWords(text, word));
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen der 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysZusammenfassung - 2D-ArraysMatrixaddition & SubtraktionJagged Arrays3D-Arrays und darüber hinausGängige 2D-Array-MusterZusammenfassung - Alles über Arrays2HashMap Teil 1
Was ist eine HashMap?Eine HashMap deklarierenWerte abrufenPrüfen, ob ein Schlüssel existiertWörterbücher modifizierenZusammenfassung - HashMap5HashSet Teil 2
Mathematik - Vereinigung von HashSetsMathematik - Schnittmenge von HashSetsMathematik - Mengen-DifferenzMathematik - Symmetrische DifferenzUnter- und ObermengenIterieren über Mengen8Fortgeschrittene String-Operationen
StringBuilder-GrundlagenStringBuffer-EinführungGrundlagen regulärer AusdrückeMusterabgleich mit RegexString-TokenizerFortgeschrittene String-Formatierung3HashMap Teil 2
HashMap-MethodenMit keySet() iterierenMit entrySet() iterierenVerschachtelte HashMapZusammenfassung - Lager verwaltenZusammenfassung - HashMap-Operationen6Erweiterter Steuerungsfluss
Beschriftete AnweisungenSwitch-AusdruckMusterabgleichSchutzklauselnZusammenfassung - Steuerungsfluss9Projekt - Einzigartiger Wortzähler
Texteingabe und SpeicherungWortverarbeitung