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().
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