我认为这很容易,但我做错了。
我有大量的记录,其中某一行' ErrorCode:[number]'可以被找寻到。我希望列出所有[数字]不等于' 0'
的事件。正则表达式:ErrorCode\:[^0]
但这也与ErrorCode匹配:[space]
如何进行反向匹配"强制性"所以ErrorCode:0不再匹配?
答案 0 :(得分:2)
此正则表达式将允许所有错误,包括错误代码包含零(不等于零)的错误:
ErrorCode\:(?:[1-9]|\d{2,})\b
或者,采用不同的方法:
ErrorCode\:(?!0)\b
答案 1 :(得分:1)
您可以使用[1-9]
字符类:
ErrorCode:[1-9]
它会匹配ErrorCode:
后跟1
到9
除0
之外的任何数字。
要提取号码,请使用
ErrorCode:([1-9][0-9]*)
并抓取第1组值。请参阅regex demo。
要匹配ErrorCode:010
(带前导零)而不是ErrorCode:000
,请使用
ErrorCode:0*([1-9][0-9]*)
请参阅this regex demo。
<强>详情:
ErrorCode:
- 文字子字符串0*
- 零个或多个0
字符([1-9][0-9]*)
- 第1组匹配以下序列:
[1-9]
- 任何ASCII数字,但0
[0-9]*
- 任何零个或多个ASCII数字。