Domanda

Ho una stringa come questa:

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

Che cosa dovrebbe mio RegEx-modello in look VB come, per trovare le quotazioni all'interno del tag? Voglio sostituirlo con qualcosa ...

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

Qualcosa di simile <( ") [^>] +> non funziona: (

Grazie

È stato utile?

Soluzione

Dipende dal vostro sapore regex, ma questo funziona per la maggior parte di loro:

"(?=[^<]*>)

Modifica Per chiunque sia curioso come funziona. Questo si traduce in inglese come "Trovare una citazione che è seguito da un> prima del prossimo <".

Altri suggerimenti

Le regex sono fondamentalmente male parsing del codice HTML (vedi Potete fornire alcuni esempi del perché è difficile analizzare XML e HTML con una regex? per il motivo). Quello che vi serve è un parser HTML. Vedere Si può fornire un esempio di parsing HTML con il parser preferito? per gli esempi che utilizzano una varietà di parser.

Se si sta usando VB.net si dovrebbe essere in grado di utilizzare HtmlAgilityPack .

Prova questo: <span class="([^"]+?)?">

Questo dovrebbe ottenere il primo valore di attributo in un tag:

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

Se la vostra intenzione è quella di sostituire tutte le virgolette all'interno dei tag, è possibile utilizzare la seguente espressione regolare:

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

Che isolare le stringhe prima e dopo il segno di virgolette. Si noti che questo non cerca di abbinare le virgolette di apertura e chiusura. Si abbina semplicemente un segno di virgolette all'interno di un tag.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top