正则表达式 - 在某个单词之后匹配4位数字作为完全匹配而不是组

时间:2017-08-31 13:53:49

标签: php regex extract

我很难弄清楚正则表达式会在某个单词作为完全匹配后提取4位数的长数字。

以下是文字:

FV 7017 FOR SOMETHING 1076,33 USD.

这是我的正则表达式,用于提取4位数字:

/FV (\d{4,})/

这将导致:

Full match  = `FV 7017`
Group 1 match = `7017`

是否可以排除" FV"用正则表达式将这个结果作为完全匹配?

2 个答案:

答案 0 :(得分:1)

是的,它可以在PHP中使用:只需使用所谓的正面lookbehind assertiondemo

/(?<=FV )\d{4,}/

它显示为“匹配四个或更多数字,但前提是它们前面有'FV '序列”。

答案 1 :(得分:0)

比正面观察更快4步,是使用\K重新启动全字符串匹配。

/FV \K\d{4}/

Pattern Demo

PHP实施:

$string='FV 7017 FOR SOMETHING 1076,33 USD.';
echo preg_match('/FV \K\d{4}/',$string,$out)?$out[0]:'fail';
// output: 7017