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