Fractionnement d'expressions régulières C# : gestion des virgules dans les chaînes entre guillemets
Le fractionnement de chaîne standard C# basé sur des virgules échoue lorsqu'il s'agit de virgules dans un texte cité. Les expressions régulières fournissent une solution robuste.
Envisagez de diviser la chaîne "('ABCDEFG', 123542, 'XYZ 99,9')" en ses trois parties constitutives : 'ABCDEFG', 123542 et 'XYZ 99,9'.
L'expression régulière suivante identifie les virgules à l'extérieur des sections entre guillemets :
<code class="language-csharp">",(?=(?:[^']*'[^']*')*[^']*$)"</code>
Cette expression garantit que seules les virgules non précédées d'un nombre pair de guillemets simples (indiquant une section fermée entre guillemets) sont utilisées comme points de partage.
Voici comment l'utiliser avec Regex.Split
:
<code class="language-csharp">string inputString = "('ABCDEFG', 123542, 'XYZ 99,9')"; string[] splitString = Regex.Split(inputString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
Le tableau splitString
contiendra alors :
splitString[0]
= 'ABCDEFG'splitString[1]
= 123542splitString[2]
= 'XYZ 99,9'Cette approche d'expression régulière divise avec précision les chaînes, préservant l'intégrité des données même lorsque des virgules apparaissent dans des sous-chaînes entre guillemets.
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!