Finden Sie Substring in einem String in C#

Muhammad Maisam Abbas 12 Oktober 2023
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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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.

LinkedIn

Verwandter Artikel - Csharp String