Maison > Java > javaDidacticiel > le corps du texte

Comment trouver des virgules en dehors des parenthèses à l'aide de Regex en Java ?

Barbara Streisand
Libérer: 2024-11-12 09:21:02
original
295 Les gens l'ont consulté

How to Find Commas Outside Parentheses Using Regex in Java?

Faire correspondre les virgules hors parenthèses avec Regex

Faire correspondre des modèles spécifiques dans le texte est une tâche courante en programmation, en particulier lorsque l'on travaille avec des fichiers texte ou des utilisateurs. entrées. Dans ce cas, l'objectif est de trouver toutes les virgules d'une chaîne qui ne sont pas placées entre parenthèses.

À l'aide d'expressions régulières Java, on peut créer un modèle d'expression régulière pour atteindre cet objectif. L'expression régulière fournie est :

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);
Copier après la connexion

Ce modèle se décompose comme suit :

  • ", correspond à une virgule.
  • (?! démarre une assertion d'anticipation négative .
  • [^(]* correspond à n'importe quel nombre de caractères, à l'exception des parenthèses ouvrantes.
  • \) correspond à une parenthèse fermante.
  • ) termine l'assertion d'anticipation négative.

L'affirmation d'anticipation négative garantit que la virgule actuelle n'est pas suivie d'une parenthèse fermante. Cela exclut effectivement les virgules entre parenthèses.

En Java, la classe Pattern peut être utilisée pour compiler et faire correspondre des modèles d'expression régulière. Le modèle compilé peut ensuite être utilisé pour identifier la correspondance. sous-chaînes dans la chaîne d'entrée.

Exemple d'utilisation :

String input = "12,44,foo,bar,(23,45,200),6";
Matcher matcher = regex.matcher(input);
while (matcher.find()) {
    System.out.println(matcher.group());
}
Copier après la connexion

Ce code imprimera les virgules qui ne sont pas entre parenthèses, comme spécifié par l'expression régulière :

,
,
,
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal