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 ?

Comment C# Regex peut-il résoudre le fractionnement de chaînes avec des virgules comme délimiteurs, sauf entre guillemets ?

DDD
DDDoriginal
2025-01-07 20:51:41190parcourir

How Can C# Regex Solve String Splitting with Commas as Delimiters, Except Within Quotes?

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 :

  • 'ABCDEFG'
  • 123542
  • 'XYZ 99,9'

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!

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