我已经研究了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]
将包含与第一组括号内的组匹配的输入部分。