Maison >développement back-end >C++ >Comment C# Regex peut-il résoudre le fractionnement de chaînes avec des virgules comme délimiteurs, sauf entre guillemets ?
Maîtriser le fractionnement de chaînes en C# avec des modèles complexes à l'aide d'expressions régulières
Cet article aborde un défi de programmation courant : diviser une chaîne en utilisant des virgules comme délimiteurs, mais uniquement lorsque ces virgules ne sont pas placées entre guillemets. Les méthodes standard de fractionnement de chaînes ne suffisent pas lorsqu'il s'agit de structures de données aussi irrégulières.
La solution Regex
La solution réside dans la puissance des expressions régulières. Le modèle d'expression régulière suivant identifie et isole efficacement les virgules en dehors des sections citées :
<code class="language-csharp">",(?=(?:[^']*'[^']*')*[^']*$)"</code>
Ce modèle recherche intelligemment des virgules suivies d'un nombre pair de guillemets simples dans la chaîne restante. Cela garantit que les virgules dans les sections citées sont ignorées.
Appliquer ce modèle pour diviser la chaîne est simple :
<code class="language-csharp">var result = Regex.Split(inputString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
Le result
tableau contiendra alors avec précision les éléments souhaités :
En résumé
Les expressions régulières offrent une solution robuste et flexible pour les tâches de manipulation de chaînes impliquant des modèles complexes. Cette méthode fournit un contrôle précis, permettant une division et une extraction précises des éléments, même des formats de chaînes les plus non conventionnels. Cette technique est inestimable pour gérer des données avec des délimiteurs irréguliers.
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!