Autor Zpráva
ja99
Profil *
Ahoj, potrebuju poradit.

Chci nahradit vsechny mezery kterym predchazi male pismeno a-z:

$string = 'April 15, 2003 sdasD d';
    $pattern = '/[a-z](\s)/';
    $replacement = ' NAHRAZENO ';
    echo preg_replace($pattern, $replacement, $string);

vysledek:
Apri NAHRAZENO 15, 2003 sdasD d

Coz je spatne protoze to nahradi taky pismeno "l" takze misto "April" zbyde jen "Apri".

Diky
juriad
Profil
klasicky se to dělá takto (zapamatuj a sežer ten jeden znak a připrcni ho do výsledku):
preg_replace('/([a-z])(\s)/', '\1 NAHRAZENO ', $string);

nebo pomocí look behind (speciální syntaxe, která kontroluje předcházející znaky):
preg_replace('/(?<=[a-z])(\s)/', ' NAHRAZENO ', $string);
ja99
Profil *
juriad:
super, díky

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: