tonio
Tengo un problema con la coincidencia de los atributos html. (en varias etiquetas html) con expresiones regulares. Para hacerlo, utilizo el patrón:
myAttr=\"([^']*)\"
Fragmento HTML:
<img alt="" src="https://stackoverflow.com/questions/7671925/1-p2.jpg" myAttr="http://example.com" class="alignleft" />
selecciona texto de la myAttr
el fin />
pero necesito seleccionar el myAttr="..."
(“http://ejemplo.com“)
rayo toal
Tienes un apóstrofo ('
) dentro de tu clase de personaje pero querías una cita ("
).
myAttr=\"([^"]*)\"
Dicho esto, realmente no debería analizar HTML con expresiones regulares. (Perdón por enlazar a eso responde de nuevo Hay otras respuestas a esa pregunta que son más del tipo “si sabes lo que estás haciendo…”. Pero es bueno tener en cuenta.)
Tenga en cuenta que incluso si limita su expresión regular a solo atributos, tiene mucho que considerar:
- Tenga cuidado de no hacer coincidir el interior de los comentarios.
- Tenga cuidado de no hacer coincidir el interior de las secciones de CDATA.
- ¿Qué pasa si los atributos están entre corchetes con comillas simples en lugar de comillas dobles?
- ¿Qué sucede si los atributos no tienen comillas?
Esta es la razón por la que generalmente se requieren analizadores serios y prediseñados.
-
Genial, ¡otra buena razón para no usar expresiones regulares aquí! Es completamente el enfoque equivocado.
– Ray Toal
17 abr 2022 a las 20:13
El * es un cuantificador codicioso. Debe seguirlo con un signo de interrogación para que no sea codicioso:
myAttr=\"([^']*?)\"
laurent’
Si solo quieres el parámetro myAttr valorutilizar esta:
"myAttr=\"([^\"]+)\""
puedes intentar usar eso
myAttr=\"?[\w:\-]+ ?= ?("[^"]+"|'[^']+'|\w+)\"
Solo intente esta es esta ayuda para eliminar todas las etiquetas
ejemplo algo
-
¿Leíste la pregunta?
– Totó
7 de marzo de 2017 a las 9:39
-
¿Leíste la pregunta?
– Totó
7 de marzo de 2017 a las 9:39