Maison >Java >javaDidacticiel >Comment diviser du texte séparé par des virgules tout en ignorant les virgules entre guillemets en Java ?

Comment diviser du texte séparé par des virgules tout en ignorant les virgules entre guillemets en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-23 17:08:14774parcourir

How to Split Comma-Separated Text While Ignoring Commas Within Quotes in Java?

Diviser le texte séparé par des virgules en ignorant les virgules entre guillemets

L'analyse de texte contenant des valeurs séparées par des virgules peut être difficile lorsque certaines valeurs contiennent des virgules entre guillemets . L'utilisation de la méthode String.split de Java avec un simple délimiteur par virgule entraîne souvent des valeurs fractionnées qui incluent ces virgules entre guillemets. Ce problème nécessite une solution qui fait la distinction entre les virgules entre guillemets et celles entre guillemets.

La solution à ce problème réside dans les expressions régulières. L'extrait de code Java suivant fournit une solution complète :

String[] arr = str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");

Cette expression régulière divise la chaîne en fonction de virgules qui ne sont pas immédiatement suivies d'un nombre pair de guillemets doubles. L'explication détaillée de l'expression régulière est la suivante :

  • ,(?= : divise la chaîne en virgules suivies d'une expression anticipée.
  • ( ?=(?:[^"]*"[^"]*")*[^"]*$) : L'expression d'anticipation garantit que la virgule est suivie d'un nombre pair de doubles guillemets.

    • [^"]* : correspond à zéro ou plusieurs caractères sans guillemets.
    • "[^"]* : correspond à une paire de guillemets doubles sans guillemets. caractères entre les deux.
    • * : correspond à l'expression précédente zéro ou plusieurs fois (nombre pair de doubles guillemets).
    • [^"]*$ : garantit que l'expression d'anticipation correspond jusqu'à la fin de la chaîne, empêchant chaque virgule de déclencher la division.

En utilisant cette expression régulière, vous pouvez diviser efficacement le texte séparé par des virgules, en ignorant les virgules entre guillemets doubles. Cette approche vous permet d'analyser le texte de manière fiable, en veillant à ce que les valeurs citées restent intactes.

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