php preg_match从字符串中提取数字


php preg_match extract digits from a string

我已经研究了SO上的其他问题,无法对此进行调整:
如何提取字符串中"was"answers"feet"之间的数字?

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

这些数字的范围可以从-8.xx到30.xx,并且措辞始终相同,初始单词为Maximum或Minimum,并且日期戳在变化。

使用lookbehind和lookahead来匹配数字周围的单词:

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

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

演示

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

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

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