Trova Substring in una stringa in C#

Muhammad Maisam Abbas 12 ottobre 2023
Trova Substring in una stringa in C#

Questo tutorial discuterà il metodo per estrarre il testo tra due parole all’interno di una stringa in C#.

Estrai testo da una stringa in C#

Se abbiamo una variabile stringa che ha un valore come Hi, I am a string variable e vogliamo trovare il testo tra le parole Hi e string, possiamo usare il metodo String.IndexOf() insieme al metodo String.SubString() per raggiungere questo obiettivo.

Il metodo String.IndexOf(x) ottiene l’indice di una particolare stringa x all’interno della stringa. Il metodo String.SubString(x, y) estrae una sottostringa sulla base dell’indice iniziale x e dell’indice finale y. Possiamo ottenere gli indici delle stringhe iniziali e finali all’interno della stringa principale con la funzione String.IndexOf(). Possiamo quindi estrarre il testo tra entrambe le stringhe passando gli indici di entrambe le parole alla funzione String.SubString(). Il seguente esempio di codice ci mostra come estrarre del testo da una stringa con i metodi String.IndexOf() e String.SubString() in 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);
    }
  }
}

Produzione:

, I am a

Nel codice sopra, definiamo la funzione stringBetween() che prende la stringa principale ed entrambe le parole come parametri e restituisce i testi tra le parole all’interno della stringa principale. Abbiamo inizializzato l’indice iniziale StartIndex del testo con l’istruzione Source.IndexOf(Start, 0) + Start.Length. Questa istruzione ottiene l’indice della stringa Start all’interno della stringa Source e quindi lo incrementa con la lunghezza della stringa Inizio in modo che Start non compaia nel risultato del testo. La stessa procedura viene eseguita per l’indice finale EndIndex del testo. Abbiamo quindi restituito il testo dando StartIndex come indice iniziale e EndIndex-StartIndex come lunghezza della nuova stringa alla funzione String.SubString().

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

Articolo correlato - Csharp String