Autor Zpráva
Karo88
Profil *
potrubujem nahradiť $pa_z0_9_1 ale pritom tá posledná jedno sa mení až do neviem koľko... skúšal som
preg_replace("/\\$pa_z0_9_[0-9]+/", "([a-z0-9\-]*)", $vyraz);
no zápis je zlý a neviem kde mám chybu,
toto nejde a neviem ani potom aka by to malo byť keď základ je $pa_z0_9_ a na konci bude rôzne číslo
výslední tvar môže byť $pa_z0_9_1, $pa_z0_9_5 atď.
Ďakujem
Darker
Profil
Nemůžu to teď otestovat, ale skus:

preg_replace("/\\\$pa_z0_9_{0,}[0-9]/", "([a-z0-9\-]*)", $vyraz);

Radek9
Profil
Darker:
Spíš bych řekl, že to myslel bez toho zpětného lomítka. Dal tam místo jednoho dvě, takže to logicky nefungovalo a vkládalo to prázdnou proměnnou $pa_z0_9_.
Darker
Profil
Radek9:
že to myslel bez toho zpětného lomítka
Pokud by funkce preg replace dostala string "$pa_z0_9_", značku dolaru bu přeložila jako nový řádek. Místo toho jsem jí předal "\$pa_z0_9_" a zrušil tak význam $.
Joker
Profil
Darker:
To je jasné, Radek9 říká, že tam bylo zamýšlené jedno zpětné lomítko, ne dvě nebo tři.
Darker
Profil
No, a já vysvětlil, proč si to nemyslím. Má se nahrazovat "$pa_z0_9_" ne "\npa_z0_9_".
Proč by tam vůbec nějaká psal?
Majkl578
Profil
On je rozdíl, jestli se ten regulár zapíše v apostrofech nebo uvozovkách. Pokud v apostrofech, jsou třeba dvě zpětná lomítka, pokud v uvozovkách, jsou třeba tři.

Tohle by mělo fungovat správně:
echo preg_replace('~\\$pa_z0_9_\d+~', '_', 'xx$pa_z0_9_5yy');

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:

0