Se podría utilizar una expresión regular con preg_match
, así:
$string = "Conacu P PPL Europe/Bucharest 680979";
$matches = array();
if (preg_match('#(\d+)$#', $string, $matches)) {
var_dump($matches[1]);
}
Y obtendrá:
string '680979' (length=6)
Y aquí es un poco de información:
- El
#
en el principio y el final de la expresión regular son los delimitadores, no significan nada: simplemente indican el comienzo y el final de la expresión regular; y se podía usar cualquier carácter que desea (la gente suele usar /
)
- El '$' al final del patrón significa "final de la cadena"
- la
()
significa que desea capturar lo que está entre ellos
- con
preg_match
, la matriz dada como tercer parámetro contendrá los datos capturados
- el primer elemento en esa matriz será el conjunto igualada cadena
- y las siguientes contendrán cada uno combinado de datos en un conjunto de
()
- los
\d
significa "un número"
- y la
+
significa uno o más tiempo
Así:
- partido de uno o más número
- al final de la cadena
Para obtener más información, puede echar un vistazo a PCRE Patterns y Pattern Syntax
.
¿Hay alguna ventaja en particular a la utilización de expresiones regulares # alrededor de su lugar de /? ¿Solo por mi propia curiosidad? –
Gracias, funciona bien. – Psyche
No necesita la agrupación. '$ matches [0]' ya contiene la coincidencia completa. – Gumbo