Rechercher une sous-chaîne dans une chaîne en C#
Ce didacticiel abordera la méthode d’extraction du texte entre deux mots dans une chaîne en C#.
Extraire du texte d’une chaîne en C#
Si nous avons une variable chaîne qui a une valeur comme Hi, I am a string variable
et que nous voulons trouver le texte entre les mots Hi
et string
, nous pouvons utiliser la méthode String.IndexOf()
avec la méthode String.SubString()
pour atteindre cet objectif.
La méthode String.IndexOf(x)
récupère l’index d’une chaîne particulière x
à l’intérieur de la chaîne. La méthode String.SubString(x, y)
extrait une sous-chaîne à partir de l’index de début x
et de l’index de fin y
. Nous pouvons obtenir les indices des chaînes de début et de fin à l’intérieur de la chaîne principale avec la fonction String.IndexOf()
. On peut alors extraire le texte entre les deux chaînes en passant les indices des deux mots à la fonction String.SubString()
. L’exemple de code suivant nous montre comment extraire du texte d’une chaîne avec les méthodes String.IndexOf()
et String.SubString()
en C#.
using System;
namespace text_from_string {
class Program {
public static string stringBetween(string Source, string Start, string End) {
string result = "";
if (Source.Contains(Start) && Source.Contains(End)) {
int StartIndex = Source.IndexOf(Start, 0) + Start.Length;
int EndIndex = Source.IndexOf(End, StartIndex);
result = Source.Substring(StartIndex, EndIndex - StartIndex);
return result;
}
return result;
}
static void Main(string[] args) {
string s = "Hi, I am a string variable.";
string word1 = "Hi";
string word2 = "string";
string text = stringBetween(s, word1, word2);
Console.WriteLine(text);
}
}
}
Production:
, I am a
Dans le code ci-dessus, nous définissons la fonction stringBetween()
qui prend la chaîne principale et les deux mots comme paramètres et renvoie les textes entre les mots à l’intérieur de la chaîne principale. Nous avons initialisé l’index de départ StartIndex
du texte avec l’instruction Source.IndexOf(Start, 0) + Start.Length
. Cette instruction récupère l’index de la chaîne Start
à l’intérieur de la chaîne Source
puis l’incrémente avec la longueur de la chaîne Start
afin que le Start
ne vienne pas dans le résultat du texte. La même procédure est effectuée pour l’index de fin EndIndex
du texte. Nous avons ensuite renvoyé le texte en donnant le StartIndex
comme index de départ et EndIndex-StartIndex
comme la longueur de la nouvelle chaîne à la fonction String.SubString()
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedInArticle connexe - Csharp String
- C# Convert String to enum
- C# Convertir Int en String
- Utiliser des chaînes dans l'instruction Switch en C#
- Comment convertir une chaîne de caractères en booléen en C#
- Comment convertir une chaîne de caractères en un tableau d'octets en C#
- Comment convertir une chaînes de caractères pour qu'elle flotte en C#