Abgleichen von Kommas außerhalb von Klammern mit Regex
Das Abgleichen bestimmter Muster im Text ist eine häufige Aufgabe in der Programmierung, insbesondere bei der Arbeit mit Textdateien oder Benutzern Eingänge. In diesem Fall besteht das Ziel darin, alle Kommas in einer Zeichenfolge zu finden, die nicht in Klammern eingeschlossen sind.
Mithilfe von regulären Java-Ausdrücken kann man ein Regex-Muster erstellen, um dieses Ziel zu erreichen. Der bereitgestellte reguläre Ausdruck lautet:
Pattern regex = Pattern.compile( ", # Match a comma\n" + "(?! # only if it's not followed by...\n" + " [^(]* # any number of characters except opening parens\n" + " \) # followed by a closing parens\n" + ") # End of lookahead", Pattern.COMMENTS);
Dieses Muster gliedert sich wie folgt:
Der negative Lookahead stellt sicher, dass auf das aktuelle Komma keine schließende Klammer folgt. Dadurch werden Kommas in Klammern effektiv ausgeschlossen.
In Java kann die Pattern-Klasse zum Kompilieren und Abgleichen von Regex-Mustern verwendet werden . Das kompilierte Muster kann dann verwendet werden, um passende Teilzeichenfolgen in der Eingabezeichenfolge zu identifizieren.
Beispielverwendung:
String input = "12,44,foo,bar,(23,45,200),6"; Matcher matcher = regex.matcher(input); while (matcher.find()) { System.out.println(matcher.group()); }
Dieser Code gibt die Kommas aus, die nicht in Klammern stehen, wie durch angegeben der reguläre Ausdruck:
, , ,
Das obige ist der detaillierte Inhalt vonWie finde ich Kommas außerhalb von Klammern mithilfe von Regex in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!