Heim  >  Artikel  >  Java  >  Wie finde ich Kommas außerhalb von Klammern mithilfe von Regex in Java?

Wie finde ich Kommas außerhalb von Klammern mithilfe von Regex in Java?

Barbara Streisand
Barbara StreisandOriginal
2024-11-12 09:21:02335Durchsuche

How to Find Commas Outside Parentheses Using Regex in Java?

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:

  • “, entspricht einem Komma.
  • (?! startet eine negative Lookahead-Behauptung .
  • [^(]* entspricht einer beliebigen Anzahl von Zeichen außer öffnenden Klammern.
  • \) entspricht einer schließenden Klammer.
  • ) beendet die negative Lookahead-Behauptung.

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!

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