Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
371 views
in Technique[技术] by (71.8m points)

php - Match number at the end of the string

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

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

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...