Si potrebbe usare una regex con preg_match
, in questo modo:
$string = "Conacu P PPL Europe/Bucharest 680979";
$matches = array();
if (preg_match('#(\d+)$#', $string, $matches)) {
var_dump($matches[1]);
}
E avrai:
string '680979' (length=6)
Ed ecco alcune informazioni:
- Il
#
a l'inizio e la fine della regex sono i delimitatori - non significano nulla: indicano solo l'inizio e la fine della regex; e si potrebbe usare qualsiasi carattere desiderato (le persone spesso usano /
)
- Il '$' alla fine del modello significa "fine della stringa"
- il
()
significa che si desidera catturare ciò che è tra di loro
- con
preg_match
, l'array dato come terzo parametro conterrà tali dati catturati
- il primo elemento di tale array sarà tutto abbinato stringa
- ed i successivi conterranno ciascuno dei dati abbinati in un insieme di
()
- le
\d
significa "un numero"
- e
+
significa una o più volte
Quindi:
- partita uno o più numeri
- alla fine del la stringa
Per ulteriori informazioni, è possibile dare un'occhiata a PCRE Patterns e Pattern Syntax
.
fonte
2009-09-20 12:59:40
c'è alcun particolare vantaggio di utilizzare # intorno alla vostra regex invece di /? Solo per mia curiosità? –
Grazie, funziona bene. – Psyche
Non è necessario il raggruppamento. '$ matches [0]' contiene già l'intera corrispondenza. – Gumbo