Encontre Substring em uma String em C#

Muhammad Maisam Abbas 12 outubro 2023
Encontre Substring em uma String em C#

Este tutorial irá discutir o método para extrair o texto entre duas palavras dentro de uma string em C#.

Extraia texto de uma string em C#

Se tivermos uma variável de string com um valor como Hi, I am a string variable e quisermos encontrar o texto entre as palavras Hi e string, podemos usar o método String.IndexOf() junto com o método String.SubString() para atingir esse objetivo.

O método String.IndexOf(x) obtém o índice de uma determinada string x dentro da string. O método String.SubString(x, y) extrai uma substring com base no índice inicial x e no índice final y. Podemos obter os índices das strings inicial e final dentro da string principal com a função String.IndexOf(). Podemos então extrair o texto entre as duas strings passando os índices de ambas as palavras para a função String.SubString(). O exemplo de código a seguir nos mostra como podemos extrair texto de uma string com os métodos String.IndexOf() e String.SubString() em 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);
    }
  }
}

Resultado:

, I am a

No código acima, definimos a função stringBetween() que pega a string principal e ambas as palavras como parâmetros e retorna os textos entre as palavras dentro da string principal. Inicializamos o índice inicial StartIndex do texto com a instrução Source.IndexOf(Start, 0) + Start.Length. Esta instrução obtém o índice da string Start dentro da string Source e então o incrementa com o comprimento da string Start para que Start não apareça no resultado do texto. O mesmo procedimento é realizado para o índice final EndIndex do texto. Em seguida, retornamos o texto fornecendo StartIndex como índice inicial e EndIndex-StartIndex como o comprimento da nova string para a função 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

Artigo relacionado - Csharp String