为什么这个正则表达式前缀不起作用?

时间:2015-06-23 19:30:37

标签: regex notepad++

我有一个示例数据,我希望在其中找到匹配项。我在Notepad ++中进行测试。

QA 44
ABQ DAL 280
ABQ HOU 290
HOU PHX 210
DAL PHX 102

当我使用下面的正则表达式时,我会在最后四行获得预期的匹配

([A-Z]{3}\s){2}[0-9]{3}

但是当我尝试在最后磨练3位数字并将其他所有内容移到前缀时,没有匹配回来。

(?<=([A-Z]{3}\s){2})[0-9]{3}

我到底错误的前缀是什么?我希望所有这些3位数字匹配并符合之前的字母代码,但它不起作用。

2 个答案:

答案 0 :(得分:2)

如果你只想要最后的数字,你需要在后面看一个非捕获组:

(?<=(?:[A-Z]{3}\s){2})[0-9]{3}

see demo

答案 1 :(得分:1)

是否有理由不能使用锚点后面看?

(?<=\s)\d{3}$