Jag måste matcha alla dessa öppningstaggar:
<p>
<a href="foo">
Men inte dessa:
<br />
<hr class="foo" />
Jag kom på detta och ville försäkra mig om att jag har förstått det rätt. Jag fångar bara a-z
.
<([a-z]+) *[^/]*?>
Jag tror att det står:
/
, sedanHar jag förstått det rätt? Och ännu viktigare, vad tycker du?
Du kan inte analysera [X]HTML med regex. Eftersom HTML inte kan analyseras med regex. Regex är inte ett verktyg som kan användas för att korrekt analysera HTML. Som jag har svarat på frågor om HTML och regex här så många gånger tidigare, kan du inte använda regex för att konsumera HTML. Reguljära uttryck är ett verktyg som inte är tillräckligt sofistikerat för att förstå de konstruktioner som används i HTML. HTML är inte ett reguljärt språk och kan därför inte analyseras av reguljära uttryck. Regex-förfrågningar är inte utrustade för att bryta ner HTML i dess meningsfulla delar. så många gånger, men det når inte fram till mig. Inte ens förbättrade oregelbundna reguljära uttryck som används i Perl klarar av att analysera HTML. Du kommer aldrig att få mig att bryta ihop. HTML är ett språk som är tillräckligt komplext för att inte kunna analyseras med hjälp av reguljära uttryck. Inte ens Jon Skeet kan analysera HTML med hjälp av reguljära uttryck. Varje gång du försöker analysera HTML med hjälp av reguljära uttryck, gråter det oheliga barnet jungfruligas blod och ryska hackare tar din webbapplikation i besittning. Att analysera HTML med reguljära uttryck kallar på smutsiga själar till de levande. HTML och regex hör ihop som kärlek, äktenskap och rituellt barnamord. Den
inal snuf
fing of the lies of Man ALL IS LOŚ͖̩͇̗̪̏̈́T ALL IS LOST the pon̷y he comes he c̶̮om ͎a̧͈͖r̽̾̈́͒͑e
not rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ
Har du försökt använda en XML-parser i stället?
Moderator's Note
Det här inlägget är låst för att förhindra olämpliga ändringar av innehållet. Inlägget ser ut precis som det ska se ut - det finns inga problem med innehållet. Var vänlig och flagga inte för att uppmärksamma oss på det.
Du vill att den första >
inte ska föregås av ett /
. Se här för detaljer om hur du gör det. Det kallas negativ lookbehind.
En naïve implementering av detta kommer dock att sluta med att matcha <bar/></foo>
i det här exempeldokumentet.
<foo><bar/></foo>
Kan du ge lite mer information om det problem du försöker lösa? Iterar du genom taggar programatiskt?