Vă mulțumim pentru susținere

Cum pot ajunge la meciuri când folosesc preg_replace în PHP?

Încerc să apuc literele majuscule ale câtorva cuvinte și să le împachetez în etichete. Folosesc preg_replace pentru a extrage și împacheta, dar nu scoate nimic .

preg_replace("/[A-Z]/", "$1", $str)
0
adăugat editat

4 răspunsuri

Din documentația preg_replace pe php.net:

Înlocuirea poate conține referințe pentru   forma \ n sau (de la PHP 4.0.4) $ n,   ultima formă fiind   una preferată. Fiecare astfel de referință   va fi înlocuit cu textul capturat   prin modelul parantez n.

Vedeți exemplul lui Flubba.

0
adăugat

Trebuie să puneți modelul în paranteze / ([A-Z]) / , astfel:

preg_replace("/([A-Z])/", "$1", $str)
0
adăugat
@Gumbo: Răspunsul la propriile întrebări este perfect, chiar încurajat, atâta timp cât întrebarea nu este un duplicat al altei pe site.
adăugat autor Bill the Lizard

Utilizați paranteze în jurul capturării dorite.

0
adăugat

\0 will also match the entire matched expression without doing an explicit capture using parenthesis.

preg_replace("/[A-Z]/", "\\0", $str)

As always, you can go to php.net/preg_replace or php.net/ to search the documentation quickly. Quoth the documentation:

\ 0 sau $ 0 se referă la textul care corespunde întregului model.

0
adăugat