标题几乎是自我解释,但只是为了澄清。
我想从字符串中取出数值,不一定只包含数值。
现在我可以用preg_match
做到这一点,但我想知道是否有一个内部的php命令可以更清洁的方式来做。
所以......只是用例子说明:
$myString = 'qazwsxedc15rfvtgbyhnujmikolp';
$myString = fetchNumber($myString); //Expecting to get $myString=15;
答案 0 :(得分:2)
我不相信这是一个可以从字符串中获取数字的开箱即用功能。 有一些约定,例如以数字开头的字符串可以类型转换为整数。
无论如何,preg_match可能不是最佳的。考虑使用preg_replace
function fetchNumber($string)
{
$string = preg_replace('#[^\d]*#', '', $string);
return (int)$string;
}
$myString = 'qazwsxedc15rfvtgbyhnujmikolp';
$myString = fetchNumber($myString); //Expecting to get $myString=15;
var_dump($myString);
你确实失去了" dot"可以发出浮动的信号,但就你注意到的那样,你的场景排除了这种可能性。
答案 1 :(得分:1)
尝试这样的事情
$str = 'qazwsxedc15rfvtgbyhnujmikolp';
preg_match_all('!\d+!', $str, $matches);
print_r($matches);