Autor | Zpráva | ||
---|---|---|---|
Karo88 Profil * |
#1 · Zasláno: 28. 3. 2011, 19:26:10
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); 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 |
#2 · Zasláno: 28. 3. 2011, 19:50:10
Nemůžu to teď otestovat, ale skus:
preg_replace("/\\\$pa_z0_9_{0,}[0-9]/", "([a-z0-9\-]*)", $vyraz); |
||
Radek9 Profil |
#3 · Zasláno: 28. 3. 2011, 20:17:54 · Upravil/a: Radek9
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 |
#4 · Zasláno: 29. 3. 2011, 02:06:23
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 |
#5 · Zasláno: 29. 3. 2011, 07:33:10
Darker:
To je jasné, Radek9 říká, že tam bylo zamýšlené jedno zpětné lomítko, ne dvě nebo tři. |
||
Darker Profil |
#6 · Zasláno: 29. 3. 2011, 08:08:50 · Upravil/a: Darker
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 |
#7 · Zasláno: 29. 3. 2011, 11:38:52
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'); |
||
Časová prodleva: 13 let
|
0