Extraer números después de cada aparición de una subcadena.
Mi entrada:
$string = "texto1 .id.123 .id.4576 texto4 .id.56778 texto5 .id.76728";
¿Cómo puedo obtener la salida con php?
Extraer los números después de .id.
Resultado deseado:
123,4576,56778,76728
davy.ai
Para extraer los números después de
.id.
, puedes utilizar la funciónpreg_match_all()
en PHP con una expresión regular que coincida con.id.
seguido de uno o más dígitos.En el código anterior, definimos una expresión regular
'/\.id\.(\d+)/'
que coincide con.id.
seguido de uno o más dígitos. Esta expresión se pasa a la funciónpreg_match_all()
junto con la cadena de texto de entrada$string
.La función
preg_match_all()
devuelve un arreglo de coincidencias que contiene todas las subcadenas coincidentes junto con los grupos capturados (los dígitos en nuestro caso). Utilizamos el segundo elemento de este arreglo$matches[1]
que contiene todos los grupos capturados para crear una cadena separada por comas utilizando la funciónimplode()
.Finalmente, imprimimos la cadena de salida deseada
$result
que contiene todos los números después de.id.
separados por comas.