⊗ppPmRgRP 253 of 447 menu

Capturas en reemplazos con expresiones regulares en PHP

Al trabajar con la función preg_replace, si capturamos algo en la expresión regular, en la cadena de reemplazo podemos insertar el contenido de esa captura escribiendo el signo de dólar $ y el número de la captura. Por ejemplo, $0 - captura cero, $1 - primera captura, $2 - segunda captura y así sucesivamente.

Para qué sirve esto y cómo usarlo vamos a verlo con ejemplos.

Ejemplo

Encontremos todos los números y en su lugar insertemos esos mismos números, pero entre llaves. Para esto todos los números encontrados los reemplazaremos por ellos mismos, pero entre llaves:

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

Como resultado en la variable se guardará lo siguiente:

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

Ejemplo

Encontremos todas las cadenas que representen números con 'x' alrededor y reemplacemos esos números por ellos mismos, pero con '!' signos alrededor:

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

Como resultado en la variable se guardará lo siguiente:

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

Ejemplo

Resolvamos el siguiente problema: dadas cadenas de la forma 'aaa@bbb' - letras, luego arroba, luego letras. Necesitamos intercambiar las letras antes de '@' y después. Implementemos:

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

Como resultado en la variable se guardará lo siguiente:

'bbb@aaa ddd@ccc'

Tareas prácticas

Dada la cadena:

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

Intercambie los dígitos en todos los números de dos dígitos.

Dada la cadena con fecha:

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

Convierta esta fecha a '2025.12.31'.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar