Pregunta

Tengo una cadena como esta:

This <span class="highlight">is</span> a very "nice" day!

¿Qué debe mi RegEx-patrón en apariencia como VB, para encontrar las cotizaciones dentro de la etiqueta? Quiero reemplazarlo con algo ...

This <span class=^highlight^>is</span> a very "nice" day!

Algo así como <( ") [^>] ^> no funciona: (

Gracias

¿Fue útil?

Solución

Depende de su sabor expresiones regulares, pero esto funciona para la mayoría de ellos:

"(?=[^<]*>)

EDIT: Para cualquier curioso cómo funciona esto. Esto se traduce en Inglés como "Encontrar una cita que es seguido por una> antes de la próxima <".

Otros consejos

expresiones regulares son fundamentalmente malo en análisis de HTML (ver ¿Puede dar algunos ejemplos de por qué es difícil de analizar XML y HTML con una expresión regular por qué). Lo que necesita es un analizador de HTML. Ver ¿Puede dar un ejemplo de análisis de HTML con su analizador favorito? ejemplos de cómo usar una variedad de programas de análisis.

Si está utilizando VB.net que debería ser capaz de utilizar HTMLAgilityPack .

Prueba esto: <span class="([^"]+?)?">

Esto debe conseguir su primer valor del atributo en una etiqueta:

<[^">]+"(?<value>[^"]*)"[^>]*>

Si su intención es reemplazar todas las comillas dentro de las etiquetas, puede utilizar la siguiente expresión regular:

(<[^>"]*)(")([^>]*>)

que aislará las subseries antes y después de la comilla. Tenga en cuenta que esto no intenta hacer coincidir apertura y cierre de comillas. Simplemente coincide con un signo de comillas dentro de una etiqueta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top