Potrebujem zladiť všetky tieto úvodné značky:
<p>
<a href="foo">
Ale nie tieto:
<br />
<hr class="foo" />
Prišiel som na to a chcel som sa uistiť, že som to pochopil správne. Zachytávam len a-z
.
<([a-z]+) *[^/]*?>
Myslím, že sa tam píše:
/
, potomMám to správne? A čo je dôležitejšie, čo si myslíte?
Nemôžete analyzovať [X]HTML pomocou regexu. Pretože HTML sa nedá analyzovať regexom. Regex nie je nástroj, ktorý sa dá použiť na správne analyzovanie HTML. Ako som tu už mnohokrát odpovedal v otázkach týkajúcich sa HTML a regexu, použitie regexu vám neumožní konzumovať HTML. Regulárne výrazy sú nástrojom, ktorý nie je dostatočne sofistikovaný na pochopenie konštrukcií používaných v jazyku HTML. HTML nie je regulárny jazyk, a preto ho nemožno analyzovať pomocou regulárnych výrazov. Regexové dotazy nie sú vybavené na rozklad HTML na jeho zmysluplné časti. toľkokrát, ale nedá mi to. Dokonca ani rozšírené nepravidelné regulárne výrazy, aké používa Perl, nezvládajú úlohu rozboru jazyka HTML. Nikdy ma nedonútite, aby som sa zlomil. HTML je dostatočne zložitý jazyk na to, aby sa nedal analyzovať regulárnymi výrazmi. Dokonca ani Jon Skeet nedokáže analyzovať HTML pomocou regulárnych výrazov. Zakaždým, keď sa pokúsite analyzovať jazyk HTML pomocou regulárnych výrazov, nesväté dieťa vyplače krv panien a ruskí hackeri pwn vašu webovú aplikáciu. Parsovanie HTML pomocou regexov privoláva skazené duše do ríše živých. HTML a regex idú k sebe ako láska, manželstvo a rituálna infanticida. Na
inálny snuf
fing of lžis človeka VŠETKO JE LOŚ͖̩͇̗̪̏̈́T ALL JE LOST the pon̷y on prídes on c̶̮om ͎a̧͈͖r̽̾̈́͒͑e
not rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ
Skúšali ste namiesto toho použiť parser XML?
Poznámka moderátora
Tento príspevok je uzamknutý, aby sa zabránilo nevhodným úpravám jeho obsahu. Príspevok vyzerá presne tak, ako má vyzerať - s jeho obsahom nie sú žiadne problémy. Prosím, neoznačujte ho, aby sme naň upozornili.
Pred prvým znakom >
nesmie byť uvedený znak /
. Podrobnosti o tom, ako to urobiť, nájdete tu. Označuje sa to ako negatívny lookbehind.
Avšak naïvná implementácia tohto spôsobu skončí zhodou <bar/></foo>
v tomto príklade dokumentu
<foo><bar/></foo>
Môžete poskytnúť trochu viac informácií o probléme, ktorý sa snažíte vyriešiť? Iterujete tagy programovo?