Heim  >  Artikel  >  Java  >  Wie ordne ich Kommas außerhalb von Klammern in Java zu?

Wie ordne ich Kommas außerhalb von Klammern in Java zu?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-11 21:49:02252Durchsuche

How to Match Commas Outside Parentheses in Java?

Übereinstimmende Kommas mit Ausnahme von Vorkommen in Klammern

Betrachten Sie die folgende Zeichenfolge:

12,44,foo,bar,(23,45,200),6

Die vorliegende Aufgabe besteht darin, etwas zu erfinden ein regulärer Ausdruck, der speziell auf Kommas abzielt, die außerhalb von Klammern stehen. Mit anderen Worten, im bereitgestellten Beispiel benötigen wir einen regulären Ausdruck, der den beiden Kommas nach „23“ und „45“ entspricht, die anderen jedoch ausschließt.

Java Regular Expression Solution

Vorausgesetzt, es fehlen verschachtelte Klammern, können wir den folgenden regulären Java-Ausdruck verwenden, um das gewünschte Ergebnis zu erzielen Ergebnis:

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);

Erklärung der Regex

Diese Regex verwendet eine negative Lookahead-Behauptung, um zu bestätigen, dass jede nachfolgende Klammer (falls vorhanden) keine schließende Klammer ist. Wenn diese Bedingung erfüllt ist, wird das Komma als Übereinstimmung erkannt.

Die Lookahead-Behauptung funktioniert wie folgt:

  • (?! initiiert eine negative Lookahead-Behauptung.
  • [^(]* gibt an, dass die Regex-Engine nach einer beliebigen Anzahl von Zeichen außer öffnenden Klammern suchen soll.
  • \) gibt an, dass eine schließende Klammern sollten unmittelbar auf die vorangehenden Zeichen folgen.
  • ) schließt die Lookahead-Behauptung ab.

Dadurch wird sichergestellt, dass der reguläre Ausdruck nur mit Kommas übereinstimmt, denen nicht unmittelbar eine schließende Klammer folgt.

Das obige ist der detaillierte Inhalt vonWie ordne ich Kommas außerhalb von Klammern in Java zu?. 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