正则表达式匹配所有错误代码,其中错误代码不等于' 0'

时间:2017-06-09 08:59:51

标签: regex

我认为这很容易,但我做错了。

我有大量的记录,其中某一行' ErrorCode:[number]'可以被找寻到。我希望列出所有[数字]不等于' 0'

的事件。

正则表达式:ErrorCode\:[^0]

但这也与ErrorCode匹配:[space]

如何进行反向匹配"强制性"所以ErrorCode:0不再匹配?

2 个答案:

答案 0 :(得分:2)

此正则表达式将允许所有错误,包括错误代码包含零(不等于零)的错误:

ErrorCode\:(?:[1-9]|\d{2,})\b

或者,采用不同的方法:

ErrorCode\:(?!0)\b

答案 1 :(得分:1)

您可以使用[1-9]字符类:

ErrorCode:[1-9]

它会匹配ErrorCode:后跟190之外的任何数字。

提取号码,请使用

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数字。