⊗ppPmRgRP 253 of 447 menu

Групи при замяна чрез регулярни изрази в PHP

При работа с функцията preg_replace, ако сложим нещо в група в регулярния израз, тогава в низа за замяна можем да вмъкнем съдържанието на тази група като напишем знака долар $ и номера на групата. Например, $0 - нулева група, $1 - първа група, $2 - втора група и така нататък.

Защо е необходимо това и как да го използваме, нека разгледаме с примери.

Пример

Нека да намерим всички числа и вместо тях да вмъкнем същите те числа, но в къдрави скоби. За целта всички намерени числа ще заменим с тях самите, но в къдрави скоби:

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

В резултат във променливата ще бъде записано следното:

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

Пример

Нека да намерим всички низове, представляващи числа с 'x' около тях и заменим тези числа със същите, но с '!' знаци около тях:

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

В резултат във променливата ще бъде записано следното:

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

Пример

Нека решим следната задача: дадени са низове от вида 'aaa@bbb' - букви, след това @, след това букви. Трябва да разменим местата на буквите преди '@' и след него. Нека реализираме:

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

В резултат във променливата ще бъде записано следното:

'bbb@aaa ddd@ccc'

Практически задачи

Даден е низ:

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

Разменете цифрите във всички двуцифрени числа.

Даден е низ с дата:

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

Преобразувайте тази дата във '2025.12.31'.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне