⊗ppPmRgRP 253 of 447 menu

Zachycení skupin při nahrazování pomocí regulárních výrazů v PHP

Při práci s funkcí preg_replace, pokud něco zachytíme do skupiny v regulárním výrazu, můžeme v řetězci pro nahrazení vložit obsah této skupiny napsáním znaku dolaru $ a čísla skupiny. Například, $0 - nultá skupina, $1 - první skupina, $2 - druhá skupina a tak dále.

K čemu je to užitečné a jak toho využívat si ukážeme na příkladech.

Příklad

Najděme všechna čísla a místo nich vložme stejná čísla, ale ve složených závorkách. K tomu všechna nalezená čísla budeme nahrazovat jimi samými, ale ve složených závorkách:

<?php $str = '1 23 456 xax'; $res = preg_replace('#(\d+)#', '{$1}', $str); ?>

Výsledek zapsaný do proměnné bude následující:

'{1} {23} {456} xax'

Příklad

Najděme všechny řetězce, které představují čísla obklopená 'x' a nahraďme tato čísla jimi samými, ale s '!' znaky kolem:

<?php $str = 'x1x x23x x456x xax'; $res = preg_replace('#x(\d+)x#', '!$1!', $str); ?>

Výsledek zapsaný do proměnné bude následující:

'!1! !23! !456! xax'

Příklad

Pojďme vyřešit následující úlohu: máme řetězce tvaru 'aaa@bbb' - písmena, pak zavináč, pak písmena. Je třeba prohodit písmena před '@' a po. Realizujme:

<?php $str = 'aaa@bbb ccc@ddd'; $res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str); ?>

Výsledek zapsaný do proměnné bude následující:

'bbb@aaa ddd@ccc'

Praktické úlohy

Je dán řetězec:

<?php $str = '12 34 56 78'; ?>

Prohoďte číslice ve všech dvouciferných číslech.

Je dán řetězec s datem:

<?php $str = '31.12.2025'; ?>

Převeďte toto datum na '2025.12.31'.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout