任何非零数字的正则表达式

时间:2016-11-03 22:33:07

标签: regex notepad++

我在Notepad ++中使用正则表达式,2016年11月后的最新版本

我正处理问题,我有几十个包含工资和佣金收入财务信息的文本文件。我需要找到所有获得佣金的员工

文件的格式是这样的。

emp001smithj20150000095000 

是去年没有佣金的例子(位置17,5个字符=" 00000")

emp002jonest20151752545000

是去年获得的17525美元佣金的一个例子(位置17,5个字符=" 17525")

我已经尝试过了......

^.{16}\b[1-9]{5}\b

理由是我想要从位置16开始的五个字符边界中的任何非零数字,但没有运气。我显然错过了一些东西!

2 个答案:

答案 0 :(得分:2)

你不应该在这里使用字边界,因为你的数字被其他数字包围。您需要前瞻检查,您的5位数字号码不仅仅包含数字,因此可以采用以下方式:

^.{16}(?=0{0,4}[1-9])\d{5}

您不应该尝试匹配[1-9]{5},例如赢了,不匹配15000

答案 1 :(得分:2)

^.{16}(?!00000)

使用否定外观查找下一个不是00000的五个字符