PHP preg_match_all用于提取带或不带小数的数字

时间:2016-05-17 08:12:09

标签: php regex

我试图从字符串中提取任何数字(带或不带小数)并将其转储到数组中。以下是我的代码

$matches = array();
$str = "I have string of 21.11 out of 30";
preg_match_all("/\d+/",$str,$matches);
echo var_dump($matches);

当前输出有以下3个元素:

21

11

30

但我希望下面只输出2个元素:

21.11

30

如何更改正则表达式?

1 个答案:

答案 0 :(得分:1)

你应该使用这个正则表达式(在字符类中添加点):

$matches = array();
$str = "I have string of 21.11 out of 30";
preg_match_all("/[\d\.]+/",$str,$matches);
var_dump($matches);

Test it(Ctrl + Enter)