Reguläre Ausdrücke oder reguläre Ausdrücke sind eine Sprache, die zum Mustervergleich und zur Zeichenfolgenmanipulation verwendet wird. Es besteht aus einer Zeichenfolge, die ein Suchmuster definiert und zum Durchführen von Vorgängen wie Suchen, Ersetzen und sogar Überprüfen von Texteingaben verwendet werden kann. Reguläre Ausdrücke bestehen aus einer Folge von Zeichen und Symbolen, die ein Suchmuster bilden.
In diesem Artikel lernen wir, wie man ein Java-Programm schreibt, um mithilfe regulärer Ausdrücke eine Zeichenfolge in einfachen Anführungszeichen aus einer größeren Zeichenfolge zu extrahieren.
Java bietet Unterstützung für reguläre Ausdrücke über das Paket java.util.regex. Musterklassen stellen kompilierte reguläre Ausdrücke dar, während Matcher-Klassen verwendet werden können, um Muster mit einer bestimmten Eingabezeichenfolge abzugleichen.
Im folgenden Beispiel definieren wir zunächst die Eingabezeichenfolge und das reguläre Ausdrucksmuster, das wir abgleichen möchten. Das Muster „(_+?)“ entspricht jeder in einfache Anführungszeichen und dem _*?-Teil eingeschlossenen Zeichenfolge. Entspricht einem beliebigen Zeichen 0 oder öfter, aber so selten wie möglich, damit der Rest des Musters übereinstimmt.
Anschließend erstellen wir ein Matcher-Objekt basierend auf dem Muster, das mithilfe der Suchmethode auf die Eingabezeichenfolge angewendet werden soll. Wenn das Muster übereinstimmt, extrahieren wir die passende Zeichenfolge mithilfe der Methode „group()“ mit Parameter 1, der die erste einfangende Gruppe im Muster darstellt. Der Nachteil dieser Methode besteht darin, dass sie nicht alle Teilzeichenfolgengruppen in einfachen Anführungszeichen erfasst.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringExtractor { public static void main(String[] args) { String input = "This is a 'single quote' enclosed string"; Pattern pattern = Pattern.compile("'(.*?)'"); Matcher matcher = pattern.matcher(input); if (matcher.find()) { String extractedString = matcher.group(1); System.out.println(extractedString); } } }
single quote
Die obige Methode hat einen großen Nachteil: Es ist zu einfach, mehrere Teilzeichenfolgen in einfachen Anführungszeichen aus der Eingabezeichenfolge zu extrahieren und nur das erste Vorkommen zu extrahieren. Dies ist eine aktualisierte und erweiterte Version der vorherigen Methode, da sie mehrere Ereignisse extrahieren kann. Wir verwenden eine While-Schleife, um zu iterieren und weiter nach Übereinstimmungen zu suchen, bis keine Übereinstimmungen mehr in der Eingabezeichenfolge vorhanden sind. Eine Liste von Übereinstimmungen wird zum Speichern aller extrahierten Zeichenfolgen verwendet und von dieser Methode zurückgegeben. Die Hauptmethode zeigt, wie die aktualisierte Methode extractStringsWithRegex() verwendet wird, um alle in einfache Anführungszeichen gesetzten Zeichenfolgen zu extrahieren.
import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.ArrayList; import java.util.List; public class StringExtractor { public static List<String> extractStringsWithRegex(String input) { // This function takes string as input, iterates over to search for regex matches // and stores them in a List named matches which is finally returned in the end Pattern pattern = Pattern.compile("'(.*?)'"); Matcher matcher = pattern.matcher(input); List<String> matches = new ArrayList<>(); while (matcher.find()) { matches.add(matcher.group(1)); } return matches; } public static void main(String[] args) { String input = "This is a 'test' string with 'multiple' 'single quote' enclosed 'words'"; List<String> matches = extractStringsWithRegex(input); for (String match : matches) { System.out.println(match); } } }
test multiple single quote words
Das Java-Programm zum Extrahieren einer in einfache Anführungszeichen eingeschlossenen Zeichenfolge aus einer größeren Zeichenfolge mithilfe regulärer Ausdrücke hat einige Vor- und Nachteile, wie unten gezeigt.
Reguläre Ausdrücke sind sehr leistungsfähig und können mit in einfache Anführungszeichen eingeschlossenen Zeichenfolgen oder sogar komplexeren Mustern übereinstimmen.
Die Matcher-Klasse bietet uns zusätzliche Methoden zum Umgang mit übereinstimmenden Zeichenfolgen, z. B. zum Ermitteln des Start- und Endindex einer Übereinstimmung.
Reguläre Ausdrücke können schwieriger zu schreiben und zu verstehen sein als andere Methoden.
Reguläre Ausdrücke können im Vergleich zu anderen Methoden langsamer sein, insbesondere bei großen Eingabezeichenfolgen oder komplexen Mustern.
Es gibt mehrere Methoden zum Extrahieren einer in einfache Anführungszeichen eingeschlossenen Zeichenfolge. Die gebräuchlichsten Methoden verwenden jedoch reguläre Ausdrücke sowie die Methoden split() und substring(). Reguläre Ausdrücke sind leistungsstarke und flexible Optionen, da sie komplexe Muster verarbeiten können, bei sehr großen Zeichenfolgen jedoch sehr zeitaufwändig sein können. Bei der Verwendung regulärer Ausdrücke wird die Pattern-Klasse zur Darstellung des Musters verwendet, und die Matcher-Klasse wird verwendet, um das Muster auf die Eingabezeichenfolge anzuwenden und dann den passenden Text zu extrahieren. Reguläre Ausdrücke haben eine Vielzahl von Anwendungsfällen, von der Validierung von Benutzereingabedaten bis hin zur Bearbeitung von Text. Wenn Sie mit regulären Ausdrücken arbeiten, ist es wichtig, das Muster sorgfältig zu entwerfen und zu testen, um sicherzustellen, dass es mit dem erforderlichen Text übereinstimmt und alle möglichen Randfälle gut verarbeitet.
Das obige ist der detaillierte Inhalt vonJava-Programm zum Extrahieren einer in einfache Anführungszeichen eingeschlossenen Zeichenfolge aus einer größeren Zeichenfolge mithilfe regulärer Ausdrücke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!