如何将php字符串末尾的数字分隔开来,并将它们保存到不同的变量中

如何将php字符串末尾的数字分隔开来,并将它们保存到不同的变量中,php,split,Php,Split,我正在寻找字符串末尾的独立数字,例如“Hello1221World987” 我需要的是$var1='Hello1221World'和$var2=987。 我已经调查过了,能够从中得到var1 $var1 = preg_replace("/[\s+\d+]{1,}$/","",$alias ); 在$var1中,我得到了所需的结果。 但是有什么方法可以让我也得到$var2中的最后一个数字吗?您可以使用它将字符串的不同部分捕获到变量中: $str = 'He

我正在寻找字符串末尾的独立数字,例如“Hello1221World987” 我需要的是$var1='Hello1221World'和$var2=987。 我已经调查过了,能够从中得到var1

$var1 = preg_replace("/[\s+\d+]{1,}$/","",$alias );
在$var1中,我得到了所需的结果。 但是有什么方法可以让我也得到$var2中的最后一个数字吗?

您可以使用它将字符串的不同部分捕获到变量中:

$str = 'Hello1221World987';
if (preg_match('/(.+?)(\d+)$/', $str, $match)) {
    // $match[1] now contains "Hello1221World"
    // $match[2] now contains "987"
}

只需查找任何不贪婪的内容
(.*)
,然后在
(\d+)
末尾添加数字
$

preg_match("/(.*?)(\d+)$/", "Hello1221World987", $vars);
现在您有了
$vars[1]
$vars[2]

最后一个数字的拆分(捕获delimeter并扔掉空的)


感谢@Alex提供的解决方案。太好了。
<?php
$str = 'Hello1221World987';
list($var1, $var2) = preg_split(
    '/([0-9]+)$/',
    $str,
    -1,
    PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY
);
var_dump($var1, $var2);
string(14) "Hello1221World"
string(3) "987"