Maison >Java >javaDidacticiel >Comment faire correspondre les virgules en dehors des parenthèses à l'aide d'expressions régulières Java ?

Comment faire correspondre les virgules en dehors des parenthèses à l'aide d'expressions régulières Java ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-23 00:23:14980parcourir

How to Match Commas Outside Parentheses Using Java Regular Expressions?

Faire correspondre des virgules hors parenthèses avec des expressions régulières Java

Étant donné une chaîne avec des virgules potentiellement placées entre parenthèses, l'objectif est d'identifier les virgules qui sont ne figure dans aucun groupement de parenthèses. Ceci peut être réalisé grâce à une expression régulière personnalisée.

Solution Java Regex

En supposant l'absence de parenthèses imbriquées dans la chaîne d'entrée, l'expression régulière Java suivante peut être utilisée :

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

Ce modèle d'expression régulière exploite une assertion d'anticipation négative pour vérifier que la parenthèse consécutive suivante (si présente) n'est pas une parenthèse fermante. Ce n'est que dans ce scénario que la virgule peut être mise en correspondance.

Utilisation et explication

Le modèle est divisé en deux composants principaux :

  1. Correspondance à la virgule : L'expression régulière commence par une simple correspondance pour tout élément autonome virgule.
  2. Affirmation d'anticipation négative : La partie suivante, entre parenthèses et précédée de (?!, affirme que la séquence de caractères qui suit la virgule ne doit pas correspondre au modèle spécifié. Dans ce Dans ce cas, il garantit que tous les caractères jusqu'à la parenthèse fermante suivante incluse (représentée par [^)]* \)) ne sont pas présent.

En excluant les virgules entre parenthèses, cette expression régulière capture efficacement uniquement les virgules qui existent en dehors de tout regroupement de parenthèses.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn