正则表达式返回太多 - 贪婪?

时间:2016-02-29 14:35:29

标签: regex excel-vba vba excel

我无法弄清楚我的问题。 我有一系列字符串,如

ST078K
C022ZK
C1084A
H963F
K123AA

在摘要中,开头有1或2个字符,后跟3或4个数字,后跟1或2个字符。但是,我的正则表达式也匹配没有最后的1或2个字符,如AB1234 我的正则表达式是

^\w{1,2}?\d{3,4}\w{1,2}$

设置了ignore-case和global选项。为什么它在字符串结尾之前似乎不关心\ w {1,2}? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

试试这个:

^[A-Z]{1,2}?\d{3,4}[A-Z]{1,2}$

数字被视为由\ w覆盖,因此最后一个两个单词字符与您的数字匹配。用[A-Z]替换即可。祝你好运!

您可以找到它的演示here