Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

Given the following string how can I match the entire number at the end of it?

$string = "Conacu P PPL Europe/Bucharest 680979";

I have to tell that the lenght of the string is not constant.

My language of choice is PHP.

Thanks.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
358 views
Welcome To Ask or Share your Answers For Others

1 Answer

You could use a regex with preg_match, like this :

$string = "Conacu P PPL Europe/Bucharest 680979";

$matches = array();
if (preg_match('#(d+)$#', $string, $matches)) {
    var_dump($matches[1]);
}

And you'll get :

string '680979' (length=6)

And here is some information:

  • The # at the beginning and the end of the regex are the delimiters -- they don't mean anything : they just indicate the beginning and end of the regex ; and you could use whatever character you want (people often use / )
  • The '$' at the end of the pattern means "end of the string"
  • the () means you want to capture what is between them
    • with preg_match, the array given as third parameter will contain those captured data
    • the first item in that array will be the whole matched string
    • and the next ones will contain each data matched in a set of ()
  • the d means "a number"
  • and the + means one or more time

So :

  • match one or more number
  • at the end of the string

For more information, you can take a look at PCRE Patterns and Pattern Syntax.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...