Autor Zpráva
Anonymní
Profil *
Ludia, prosim vas, ako mozem v retazci nahradit slovo medzi ":" a "|"? Uz sa s tym morim cely vecer a stale to nefunguje. Neviem ci na to idem vobec dobre.. asi som regularne vyrazy akosi nepochopil. Skusal som nieco take (je to sprostost..):

preg_replace('/(.*:)[^|](.*)/i', "$1".$text."$2", $string);
Retal
Profil

echo preg_replace('/:[^|]+\|/U', ':'.$text.'|', $string);
rabbit
Profil
Jdeš na to imho dobře, ale u toho [^|] ti chybí kvantifikátor ... takže ti to provede nahrazení, jen pokud je tam jeden znak. Přidej tam hvězdičku. A pokud víš, že je ten řetězec v $string jen jednou, můžeš přidat znaky začátku a konce řetězce. Nechce se mi to testovat, tak snad to bude správně. Jo, a ty dolary ($1 a $2) dej buď do apostrofů místo do uvozovek, nebo je escapuj!!!
preg_replace('/^(.*:)[^|]*(.*)$/i', '$1' . $text . '$2', $string);
rabbit
Profil
A nebo to udělej, jak ti radí Retal O;-)
Anonymní
Profil *
dik :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0