Regex: obtener atributos html

Intento obtener todos los atributos html, pero obtengo solo uno que encapsula a los demás.
mi patrón es:

(\S+)=((".*")|('.*')|(\S*(?=(\s+))))

El contenido es:

<a href="html.aspx" target="_blank" />

Y solo regresa un matche:

  • href="html.aspx" objetivo="_blank"

Pero quiero que sea:

  • href="html.aspx"
  • target = "_ en blanco"

Cualquier ayuda será apreciada.

preguntado el 03 de mayo de 12 a las 18:05

1 Respuestas

Es porque estás usando la coincidencia codiciosa (la predeterminada) con .*" que seguirá adelante hasta que encuentre el pasado ". Prueba esta expresión regular:

(\S+)=((".*?")|('.*?')|(\S*(?=(\s+))))

La .*?" le dice a la expresión regular que busque hasta el en el primer ", no el último.

contestado el 03 de mayo de 12 a las 19:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.