Encontrar substring en una cadena en C#

Muhammad Maisam Abbas 12 octubre 2023
Encontrar substring en una cadena en C#

Este tutorial discutirá el método para extraer el texto entre dos palabras dentro de una cadena en C#.

Extraer texto de una cadena en C#

Si tenemos una variable de cadena que tiene un valor como Hi, I am a string variable y queremos encontrar el texto entre las palabras Hi y string, podemos usar el método String.IndexOf() junto con el método String.SubString() para lograr este objetivo.

El método String.IndexOf(x) obtiene el índice de una cadena particular x dentro de la cadena. El método String.SubString(x, y) extrae una subcadena sobre la base del índice inicial x y el índice final y. Podemos obtener los índices de las cadenas inicial y final dentro de la cadena principal con la función String.IndexOf(). Luego podemos extraer el texto entre ambas cadenas pasando los índices de ambas palabras a la función String.SubString(). El siguiente ejemplo de código nos muestra cómo podemos extraer texto de una cadena con los métodos String.IndexOf() y 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);
    }
  }
}

Producción :

, I am a

En el código anterior, definimos la función stringBetween() que toma la cadena principal y ambas palabras como parámetros y devuelve los textos entre las palabras dentro de la cadena principal. Inicializamos el índice inicial StartIndex del texto con la instrucción Source.IndexOf(Start, 0) + Start.Length. Esta declaración obtiene el índice de la cadena Start dentro de la cadena Source y luego lo incrementa con la longitud de la cadena Start para que Start no aparezca en el resultado del texto. El mismo procedimiento se lleva a cabo para el índice final EndIndex del texto. Luego devolvimos el texto dando el StartIndex como índice inicial y EndIndex-StartIndex como la longitud de la nueva cadena a la función 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

Artículo relacionado - Csharp String