Finden Sie Substring in einem String in C#
In diesem Tutorial wird die Methode zum Extrahieren des Textes zwischen zwei Wörtern innerhalb einer Zeichenkette in C# erläutert.
Extrahieren Sie Text aus einer Zeichenkette in C#
Wenn wir eine Zeichenkettenvariable haben, die einen Wert wie Hi, I am a string variable
hat und wir den Text zwischen den Wörtern Hi
und string
suchen möchten, können wir die Methode String.IndexOf()
verwenden zusammen mit der Methode String.SubString()
, um dieses Ziel zu erreichen.
Die Methode String.IndexOf(x)
ruft den Index einer bestimmten Zeichenkette x
innerhalb der Zeichenkette ab. Die Methode String.SubString(x, y)
extrahiert einen Teilstring auf Basis des Startindex x
und des Endindex y
. Mit der Funktion String.IndexOf()
können wir die Indizes der Start- und EndZeichenketten innerhalb der HauptZeichenkette abrufen. Wir können dann den Text zwischen beiden Zeichenketten extrahieren, indem wir die Indizes beider Wörter an die Funktion String.SubString()
übergeben. Das folgende Codebeispiel zeigt uns, wie wir mit den Methoden String.IndexOf()
und String.SubString()
in C# Text aus einem String extrahieren können.
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);
}
}
}
Ausgabe:
, I am a
Im obigen Code definieren wir die Funktion stringBetween()
, die die HauptZeichenkette und beide Wörter als Parameter verwendet und die Texte zwischen den Wörtern in der HauptZeichenkette zurückgibt. Wir haben den Startindex StartIndex
des Textes mit der Anweisung Source.IndexOf(Start, 0) + Start.Length
initialisiert. Diese Anweisung ruft den Index der Zeichenkette Start
innerhalb der Zeichenkette Quelle
ab und erhöht ihn dann um die Länge der Zeichenkette Start
, sodass der Text Start
nicht im Textergebnis enthalten ist. Das gleiche Verfahren wird für den Endindex EndIndex
des Textes durchgeführt. Wir haben dann den Text zurückgegeben, indem wir der Funktion String.SubString()
den StartIndex
als Startindex und EndIndex-StartIndex
als Länge des neuen Strings gegeben haben.
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.
LinkedInVerwandter Artikel - Csharp String
- C# Int in String konvertieren
- C# String in Enum konvertieren
- Verwendung von Strings in der Switch-Anweisung in C#
- So konvertieren Sie eine Zeichenkette in ein Byte-Array in C#
- Wie konvertiert man eine Zeichenkette in C# in boolesche Zeichenketten
- Wie schreibt man ein mehrzeiliges String-Literal in C#