php从字符串中获取数字

Pet*_*ber 7 php regex preg-match-all preg-match

我有这个字符串

@ [123:peterwateber]你好095032sdfsdf!@ [589:ZZZZ]

我想得到123和589你是如何使用正则表达式或PHP中的东西?

注意:peterwateber和zzzz就是例子.应该考虑任何随机字符串

Ali*_*guy 7

不要忘记前瞻,所以你不匹配095032:

$foo = '@[123:peterwateber] hello there 095032sdfsdf! @[589:zzzz]';
preg_match_all("/[0-9]+(?=:)/", $foo, $matches);
var_dump($matches[0]); // array(2) { [0]=> string(3) "123" [1]=> string(3) "589" }
Run Code Online (Sandbox Code Playgroud)