Todas las coincidencias en bolsillos mediante expresiones regulares en PHP
Con la función preg_match_all puedes
dividir todas las coincidencias encontradas en bolsillos.
Veamos cómo se hace.
Supongamos, por ejemplo, que tenemos una cadena con dominios:
<?php
$str = 'site.ru site123.com my-site.net';
?>
Escribamos una expresión regular para buscar dominios, separando el nombre y la zona en bolsillos independientes:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
El resultado irá al tercer parámetro de la función:
<?php
preg_match_all($reg, $str, $res);
var_dump($res);
?>
Como resultado obtendremos un array bidimensional. En el elemento cero de este array irá el contenido de los bolsillos cero (es decir, lo que coincidió con toda la expresión regular), en el segundo elemento - el contenido de los primeros bolsillos y así sucesivamente:
<?php
[
['site.ru', 'site123.com', 'my-site.net'],
['site', 'site123', 'my-site'],
['ru', 'com', 'net'],
]
?>
Se da una cadena con fechas:
<?php
$str = '2023-10-29 2024-11-30 2025-12-31';
?>
Encuentra todas las fechas, separando el año, mes y día en bolsillos independientes.