RegEx para obter texto dentro de tags

votos
2

Preciso de expressões regulares para obter o texto dentro de 2 tags.

Vamos dizer que eu quero um array retornado contendo qualquer texto dentro <data> e </data> tags. Ou qualquer texto dentro ( e ) tags.

Como posso fazer isso com regex em C #?


Uma questão avançado seria:

  1. A cadeia de entrada é color = rgb (50,20,30)
  2. Como posso obter os 3 números em 3 slots de matriz separadas como devolvido pelo processador de RegEx em C #?
Publicado 09/12/2008 em 17:10
fonte usuário
Em outras línguas...                            


5 respostas

votos
4

Perl regexp seria

$string =~ /color=rgb\((\d+),(\d+),(\d+)\)/;
@array = ($1,$2,$3);

Mas você provavelmente precisa de mais informações que este.

Respondeu 09/12/2008 em 17:13
fonte usuário

votos
3

Desde que você mencionou especificamente C #, aqui está como eu estou fazendo que a análise exata:

private static readonly Regex RgbValuePattern = new Regex(@"(?<r>\d{1,3}) ?, ?(?<g>\d{1,3}) ?, ?(?<b>\d{1,3})",
                                                          RegexOptions.Compiled | RegexOptions.ExplicitCapture);

Depois, mais tarde ...

var match = RgbValuePattern.Match(value);

if (match.Success)
{
    int r = Int32.Parse(match.Groups["r"].Value, NumberFormatInfo.InvariantInfo);
    int g = Int32.Parse(match.Groups["g"].Value, NumberFormatInfo.InvariantInfo);
    int b = Int32.Parse(match.Groups["b"].Value, NumberFormatInfo.InvariantInfo);
    return Color.FromArgb(r, g, b);
}
Respondeu 09/12/2008 em 18:29
fonte usuário

votos
1

Usando Regex para analisar XML é geralmente uma idéia muito ruim. Veja esta resposta .

Respondeu 14/11/2009 em 01:03
fonte usuário

votos
1

Esta questão semelhante tem respostas que ajudarão:

Respondeu 09/12/2008 em 17:54
fonte usuário

votos
0

Acredito verdadeiros problemas irão surgir quando você quer analisar construções de nidificação. Por exemplo, quando você deseja examinar XML como este <data><data>123</data><data>456</data></data> para extrair dados incluídos no ultraperiféricas <data>etiquetas de um RegEx por si só não seria suficiente. Apenas avisá-lo para não usar RegEx onde existem alguns métodos mais (potentes e específicos). Analisadores XML real deve ser considerado ao fazer tarefas mais complexas em XML. Meus 2 centavos ...

Respondeu 09/12/2008 em 17:35
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more