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);
Ce modèle se décompose comme suit :
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()); }
Ce code imprimera les virgules qui ne sont pas entre parenthèses, comme spécifié par l'expression régulière :
, , ,
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!