Maison > développement back-end > C++ > Comment puis-je diviser une chaîne en C# tout en conservant les délimiteurs ?

Comment puis-je diviser une chaîne en C# tout en conservant les délimiteurs ?

Barbara Streisand
Libérer: 2025-01-08 10:26:41
original
512 Les gens l'ont consulté

How Can I Split a String in C# While Keeping the Delimiters?

Préserver les délimiteurs lors du fractionnement de chaînes en C#

Souvent, vous devez diviser une chaîne à l'aide de délimiteurs spécifiques, mais vous souhaitez également conserver ces délimiteurs dans le tableau résultant. Cet article présente une méthode fiable en C# utilisant des expressions régulières.

La solution : les expressions régulières

La méthode

C# Regex.Split, combinée à une expression régulière intelligemment conçue, fournit la solution. La clé consiste à utiliser des assertions positives. Un lookbehind positif garantit qu'un modèle existe avant la position actuelle sans inclure ce modèle dans la correspondance elle-même.

Modèle d'expression régulière :

Ce modèle recherche les délimiteurs (virgules, points et points-virgules dans cet exemple) tout en garantissant qu'ils restent dans la sortie :

<code class="language-csharp">(?<=(?:[,.;]))</code>
Copier après la connexion
  • (?<=...) : Il s’agit d’une affirmation positive.
  • (?:[,.;]) : Il s'agit d'un groupe sans capture correspondant à une virgule, un point ou un point-virgule.

Exemple de code :

Illustrons avec du code :

<code class="language-csharp">using System.Text.RegularExpressions;

// ... other code ...

string originalString = "This,is,a,comma,separated,string.";

string[] parts = Regex.Split(originalString, @"(?<=(?:[,.;]))");

// parts array will contain:
// ["This",",","is",",","a",",","comma",",","separated",",","string","."] </code>
Copier après la connexion

L'expression régulière divise la chaîne aux points suivant immédiatement chaque délimiteur. Étant donné que le délimiteur lui-même n'est pas inclus dans la correspondance, il est conservé dans le tableau résultant.

Sortie :

Le résultat montre que la chaîne d'origine est divisée et que chaque délimiteur est inclus en tant qu'élément distinct dans le tableau résultant. Le lookbehind positif garantit que les délimiteurs font partie de la division sans être absorbés dans les segments de chaîne.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal