Diskuze: preg_replace

PHP PHP preg_replace American English version English version

Avatar
Tomáš Střecha:

Ahoj,
mohl by mi prosím někdo vysvětlit jak funguje preg_replace()? Vím, co přesně má dělat, ale například nechápu proč se tam dávají lomítka, hranaté závorky a podobně. Příklad: "/\-{2,}/u" (Zdroj)
Děkuji.

 
Odpovědět 20. března 16:01
Avatar
Odpovídá na Tomáš Střecha
Michal Struna:

Ahoj, kdežto funkce str_replace() nahradí jeden konkrétní text za jiný, funkce preg_replace() umožňuje používat tzv. regulární výrazy. To je zjednodušeně řečeno maska, podle které se bude v textu vyhledávat.

Následující příklad kupříkladu nahradí všechny číslice ve stringu $text za plus:

$text = preg_replace('/[0-9]/', '+', $text);

Jestliže by si nepoužil regulární výraz, musel by si pro docílení stejného efektu psát něco takového:

$text = str_replace('0', '+', $text);
$text = str_replace('1', '+', $text);
$text = str_replace('2', '+', $text);
$text = str_replace('3', '+', $text);
$text = str_replace('4', '+', $text);
$text = str_replace('5', '+', $text);
$text = str_replace('6', '+', $text);
$text = str_replace('7', '+', $text);
$text = str_replace('8', '+', $text);
$text = str_replace('9', '+', $text);

Samotná problematika regulárních výrazů je trochu složitější, takže doporučuju na toto téma přečíst nějaký článek.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +2 20. března 16:36
Avatar
Odpovídá na Michal Struna
Tomáš Střecha:

Děkuji moc za objasnění a za odkaz. Stránku jsem si přečetl a teď tomu daleko více rozumím, než předtím. :)

Ještě jednou děkuji.

 
Nahoru Odpovědět  +1 20. března 16:51
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.