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
Libérer: 2025-01-07 20:51:41
original
245 Les gens l'ont consulté

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 :

",(?=(?:[^']*'[^']*')*[^']*$)"
Copier après la connexion

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 :

var result = Regex.Split(inputString, ",(?=(?:[^']*'[^']*')*[^']*$)");
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal