我很难弄清楚正则表达式会在某个单词作为完全匹配后提取4位数的长数字。
以下是文字:
FV 7017 FOR SOMETHING 1076,33 USD.
这是我的正则表达式,用于提取4位数字:
/FV (\d{4,})/
这将导致:
Full match = `FV 7017`
Group 1 match = `7017`
是否可以排除" FV"用正则表达式将这个结果作为完全匹配?
答案 0 :(得分:1)
是的,它可以在PHP中使用:只需使用所谓的正面lookbehind assertion(demo)
/(?<=FV )\d{4,}/
它显示为“匹配四个或更多数字,但前提是它们前面有'FV '
序列”。
答案 1 :(得分:0)
比正面观察更快4步,是使用\K
重新启动全字符串匹配。
/FV \K\d{4}/
PHP实施:
$string='FV 7017 FOR SOMETHING 1076,33 USD.';
echo preg_match('/FV \K\d{4}/',$string,$out)?$out[0]:'fail';
// output: 7017