php preg_match从字符串中提取数字

时间:2015-02-24 02:55:18

标签: php preg-match preg-match-all

我已经查看过有关SO的其他问题,无法为此做出调整:
如何在"之间提取数字?#34;和"脚"在这个字符串?

Maximum was 5.29 feet at 2015-10-28 07:59 10

这些数字的范围可以是-8.xx到30.xx,并且措辞总是相同的,初始单词是最大值或最小值以及更改日期戳。

1 个答案:

答案 0 :(得分:1)

使用lookbehind and lookahead匹配数字周围的字词:

preg_match('/(?<=was )[\d.]+(?= feet)/', $string, $match);

Looakarounds用于匹配部分输入,但它们不包含在匹配结果中。然后$match[0]将包含数字。

DEMO

更传统(预先看)的方式是使用捕获组:

preg_match('/was ([\d.]+) feet/', $string, $match);

在这种情况下,$match[1]将包含与第一组括号内的组匹配的输入部分。