RegEx para obtener texto dentro de las etiquetas

votos
2

Necesito una expresión regular para obtener el texto dentro de 2 etiquetas.

Digamos que quiero que se devuelva una matriz que contenga cualquier texto dentro de las etiquetas <data> y </data>. O cualquier texto dentro de las etiquetas ( y ).

¿Cómo puedo hacer eso con RegEx en C #?


Una pregunta avanzada sería:

  1. La cadena de entrada es color = rgb (50,20,30)
  2. ¿Cómo puedo obtener los 3 números en 3 ranuras de arreglos separados como los devuelve el procesador RegEx en C #?
Publicado el 09/12/2008 a las 17:10
fuente por usuario
En otros idiomas...                            


5 respuestas

votos
4

Perl regexp sería

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

Pero probablemente necesites más información sobre esto.

Respondida el 09/12/2008 a las 17:13
fuente por usuario

votos
3

Como mencionó específicamente C #, así es como estoy haciendo ese análisis exacto:

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

Luego más 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);
}
Respondida el 09/12/2008 a las 18:29
fuente por usuario

votos
1

Usar Regex para analizar XML suele ser una mala idea. Vea esta respuesta .

Respondida el 14/11/2009 a las 01:03
fuente por usuario

votos
1

Esta pregunta similar tiene respuestas que ayudarán:

Respondida el 09/12/2008 a las 17:54
fuente por usuario

votos
0

Creo que surgirán problemas reales cuando quiera analizar construcciones de anidación. Por ejemplo, cuando desee examinar XML de esta manera <data><data>123</data><data>456</data></data> para extraer los datos incluidos en las <data>etiquetas más externas, un RegEx solo no será suficiente. Solo te advierto que no uses RegEx donde existan algunos métodos más (poderosos y específicos). Los analizadores XML reales deben considerarse al realizar tareas más complejas en XML. Mis 2 centavos ...

Respondida el 09/12/2008 a las 17:35
fuente por usuario

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