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