Autor Zpráva
jrw
Profil
Potřeboval bych nahradit řetězec <p class="?????" style='?????'> řetězec tímto <p>, zkusil jsem něco podobného <p\s*\d*\W*\D*[>]{1} ale bere to i koncový tag <p class="?????" style='?????'>cosi</p> potřeboval bych tam nějak doplnit aby to bralo jen uvodní ale nevím jak to mám zapsat.
Joker
Profil
Vidím dvě možnosti:
1. použít výraz "všechno kromě >", tzn.: <p[^>]+>
2. použít líný kvantifikátor, tzn.: <p.+?>
Joker
Profil
Poznámka: To je samozřejmě jednoduché řešení, použitelné pro nějakých 99% případů, ale na něčem takovémhle si vyláme zuby:
<p title="a>b" class="neco">text</p>
Chamurappi
Profil
Reaguji na jrw:
Ve svém validátoru používám na ulovení počáteční značky přibližně tento výraz:
<([^!<>/\s]+)(?:\s+(?:[^<>/=\s]+(?:\s*=\s*(?:(?:[</]*[^"'<>/=\s]+)|(?: "[^"]*")|(?:'[^']*'))?)?\s*)*)?(?:(?=<)|[/>])
— první submatch pak obsahuje název elementu.
(Ale bacha, miniBB do toho vecpalo mezeru.)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: