/ / Come analizzo l'HTML utilizzando le espressioni regolari in C #? - c #, html, regex, analisi

Come analizzo l'HTML usando le espressioni regolari in C #? - c #, html, regex, analisi

Come analizzo l'HTML usando le espressioni regolari in C #?

Ad esempio, dato il codice HTML

<s2> t1 </s2>  <img src="/images/1.gif" />  <span> span1 <span/>

Sto cercando di ottenere

1.  <s2>
2.  t1
3. </s2>
4. <img src="/images/1.gif" />
5. <span>
6. span1
7. <span/>

Come faccio a farlo usando le espressioni regolari in C #?

Nel mio caso, l'input HTML non è un XML ben formato come XHTML. Pertanto non posso usare parser XML per fare questo.

risposte:

6 per risposta № 1

Le espressioni regolari sono un modo molto povero di analizzareHTML. Se puoi garantire che il tuo input sia un XML ben formato (ad esempio XHTML), puoi usare XmlReader per leggere gli elementi e poi stamparli come preferisci.


4 per risposta № 2

Questo è già stato risposto letteralmente a dozzinedi volte, ma si ripete: le espressioni regolari possono solo analizzare linguaggi regolari, ecco perché sono chiamate espressioni regolari.L'HTML non è una lingua normale (come probabilmente ogni studente universitario dell'ultimo decennio ha provato almeno una volta), e quindi non può essere analizzato da espressioni regolari.


3 per risposta № 3

Potresti provare l'Html Agility Pack, http://www.codeplex.com/htmlagilitypack. Gestisce anche HTML malformato.


0 per risposta № 4

Ho usato questo regx in C #, e funziona. Grazie per tutte le tue risposte.

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

-3 per risposta № 5

potresti voler semplicemente usare le funzioni stringa. fai <e> come indicatore per l'analisi.