Ho bisogno di abbinare tutti questi tag di apertura:
<p>
<a href="foo">
Ma non questi:
<br />
<hr class="foo" />
Mi è venuto in mente questo e volevo essere sicuro di averlo fatto bene. Sto catturando solo la a-z
.
<([a-z]+) *[^/]*?>
Se non sbaglio c'è scritto:
/
, quindiHo capito bene? E soprattutto, cosa ne pensate?
Non puoi analizzare [X]HTML con la regex. Perché l'HTML non può essere analizzato dalla regex. La regex non è uno strumento che può essere utilizzato per analizzare correttamente l'HTML. Come ho già risposto tante volte qui nelle domande su HTML e regex, l'uso di regex non ti permetterà di consumare l'HTML. Le espressioni regolari sono uno strumento insufficientemente sofisticato per comprendere i costrutti impiegati dall'HTML. L'HTML non è un linguaggio regolare e quindi non può essere analizzato dalle espressioni regolari. Le query Regex non sono attrezzate per scomporre l'HTML nelle sue parti significative. Anche le espressioni regolari irregolari migliorate come quelle usate da Perl non sono all'altezza del compito di analizzare l'HTML. Non mi farete mai crollare. L'HTML è un linguaggio sufficientemente complesso da non poter essere analizzato dalle espressioni regolari. Persino Jon Skeet non può analizzare l'HTML usando le espressioni regolari. Ogni volta che si tenta di analizzare l'HTML con le espressioni regolari, il bambino empio piange il sangue delle vergini, e gli hacker russi pwnano la tua webapp. Analizzare l'HTML con le regex evoca anime contaminate nel regno dei vivi. HTML e regex vanno insieme come l'amore, il matrimonio e l'infanticidio rituale. Il
inal snuf
fing of la menzognas dell'uomo TUTTO È LOŚ͖̩͇̗̪̏̈́T ALL IS LOST the pon̷y he comes he c̶̮omHai provato invece ad usare un parser XML?
Nota del moderatore
Questo post è bloccato per evitare modifiche inappropriate al suo contenuto. Il post appare esattamente come dovrebbe apparire - non ci sono problemi con il suo contenuto. Per favore non segnalatelo alla nostra attenzione.
Vuoi che il primo >
non sia preceduto da un /
. Guarda qui per i dettagli su come farlo. Si parla di lookbehind negativo.
Tuttavia, una implementazione naïve di questo finirà per far corrispondere <bar/></foo>
in questo documento di esempio
<foo><bar/></foo>
Puoi fornire qualche informazione in più sul problema che stai cercando di risolvere? Stai iterando attraverso i tag programmaticamente?