⊗ppPmRgRP 253 of 447 menu

Capturas (Capturing Groups) na substituição com expressões regulares no PHP

Ao trabalhar com a função preg_replace, se capturarmos algo em um grupo na expressão regular, então na string de substituição podemos inserir o conteúdo desse grupo escrevendo o cifrão $ e o número do grupo. Por exemplo, $0 - o grupo zero (a correspondência completa), $1 - o primeiro grupo, $2 - o segundo grupo e assim por diante.

Vamos ver para que isso serve e como usar com exemplos.

Exemplo

Vamos encontrar todos os números e, em vez deles, inserir esses mesmos números, mas entre chaves. Para isso, todos os números encontrados serão substituídos por eles mesmos, mas entre chaves:

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

Como resultado, será armazenado na variável o seguinte:

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

Exemplo

Vamos encontrar todas as strings que representam números com 'x' ao redor e substituir esses números por eles mesmos, mas com '!' ao redor:

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

Como resultado, será armazenado na variável o seguinte:

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

Exemplo

Vamos resolver o seguinte problema: dadas strings no formato 'aaa@bbb' - letras, depois o símbolo @, depois letras. Precisamos trocar de lugar as letras antes do '@' e depois. Vamos implementar:

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

Como resultado, será armazenado na variável o seguinte:

'bbb@aaa ddd@ccc'

Tarefas Práticas

Dada a string:

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

Troque os dígitos de lugar em todos os números de dois dígitos.

Dada a string com uma data:

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

Converta esta data para '2025.12.31'.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar