Usuário com melhor resposta
Remover Caracteres de um texto

Pergunta
-
Bom dia.
Estou precisando encontrar uma solução mais simples. Exemplo
Eu tenho um texto assim:
{Nome} Residente na rua {rua} bairro {bairro}
na cidade de {Cidade}
eu preciso pegar somente o que está entre {}, e armazenar em um array, eu até sei uma solução de percorrer caracter por caracter, mas gostaria de saber se alguém conhece uma maneira mais fácil.obrigado.
Respostas
-
Existe algumas formas, mas, essa é utilizando Expressão Regulares que no meu ver fica um código limpo e excelente de se entender!
Segue logo abaixo:
string Texto = "{Nome} Residente na rua {rua} bairro {bairro} na cidade de {Cidade}"; IList<string> EncontradosLista = new List<string>(); MatchCollection Encontrados = Regex.Matches(Texto, @"{[\w]{1,}}", RegexOptions.Multiline | RegexOptions.IgnoreCase); if (Encontrados.Count > 0) { IEnumerator Faca = Encontrados.GetEnumerator(); while (Faca.MoveNext()) { EncontradosLista.Add(Faca.Current.ToString()); } //EncontradosLista é o array que você pediu }
Ref do meu Blog Pessoal: http://fulviocanducci.wordpress.com/tag/regex/
Fúlvio Cezar Canducci Dias
- Sugerido como Resposta Fulvio Cezar Canducci Dias terça-feira, 3 de setembro de 2013 15:46
- Editado Fulvio Cezar Canducci Dias terça-feira, 3 de setembro de 2013 15:47 Alt link Blog
- Marcado como Resposta Giovani Cr segunda-feira, 16 de setembro de 2013 13:58
Todas as Respostas
-
Bom dia Everton,
Eu já passei por algo parecido e encontrei a solução em um post no stackoverflow que segue abaixo:
http://stackoverflow.com/questions/10709821/find-text-in-string-with-c-sharp
Basicamente o código é o seguinte:
public static string getBetween(string strSource, string strStart, string strEnd) { int Start, End; if (strSource.Contains(strStart) && strSource.Contains(strEnd)) { Start = strSource.IndexOf(strStart, 0) + strStart.Length; End = strSource.IndexOf(strEnd, Start); return strSource.Substring(Start, End - Start); } else { return ""; } }
E você usa da seguinte forma:
string text = "This is an example string and my data is here"; string data = getBetween(text, "my", "is");
-
Existe algumas formas, mas, essa é utilizando Expressão Regulares que no meu ver fica um código limpo e excelente de se entender!
Segue logo abaixo:
string Texto = "{Nome} Residente na rua {rua} bairro {bairro} na cidade de {Cidade}"; IList<string> EncontradosLista = new List<string>(); MatchCollection Encontrados = Regex.Matches(Texto, @"{[\w]{1,}}", RegexOptions.Multiline | RegexOptions.IgnoreCase); if (Encontrados.Count > 0) { IEnumerator Faca = Encontrados.GetEnumerator(); while (Faca.MoveNext()) { EncontradosLista.Add(Faca.Current.ToString()); } //EncontradosLista é o array que você pediu }
Ref do meu Blog Pessoal: http://fulviocanducci.wordpress.com/tag/regex/
Fúlvio Cezar Canducci Dias
- Sugerido como Resposta Fulvio Cezar Canducci Dias terça-feira, 3 de setembro de 2013 15:46
- Editado Fulvio Cezar Canducci Dias terça-feira, 3 de setembro de 2013 15:47 Alt link Blog
- Marcado como Resposta Giovani Cr segunda-feira, 16 de setembro de 2013 13:58
-