Autor Zpráva
MelkorNemesis
Profil
Ahoj, mam problem s lookbehind asertivni negaci v regularnim vyrazu.

preg_replace('/\<a (.*)=\"(?<!=mailto\:)(.*)\@(.*)\.(.*)\">(.*)\<\/a\>/','<a href="mailto:\\2@\\3.\\4">\\5</a>', stripslashes($post));


Potrebuju v odkazech "href='neco@nekde.xxx'" pridat prefix "mailto:" pouze, pokud tam tento prefix uz neni.

Zkousel jsem psat podle http://www.php.net/manual/en/regexp.reference.assertions.php a projet par for, ale bez uspechu. v PHP se mi prefix prida treba 5x, jakoby to matchnulo, ze to tam neni.

na regexp.cz mi to pise
Warning: ereg() [function.ereg]: REG_BADRPT in /usr/home/www/regexp/www/index.php on line 90
, pricemz tam zadny nepovoleny znak nemam. (Evidentne tomu vadi ? v (?<!mailto..., kdyz jsem to zkousel promazavat)

Prosim o radu - urgentni

Diky a jsem s pozdravem
Michal Sevcik
AM_
Profil
na regexp.cz mi to pise 1

Warning: ereg() [function.ereg]: REG_BADRPT in /usr/home/www/regexp/www/index.php on line 90


POSIXové regulární výrazy vůbec lookbehind ani lookforward nepodporují, takže proto. Lze to jen přes preg_*

jinak nevím, v čem je problém.
MelkorNemesis
Profil
delam pres preg_* no, uvidim co vygooglim jeste. Kazdopadne dik
MelkorNemesis
Profil
jeste se omlouvam za nadpis, ono to je negativni aserce :/

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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