【问题标题】:[RegEx]Regular expression for a number greater than 10000[RegEx]大于 10000 的数字的正则表达式
【发布时间】:2016-08-23 19:10:53
【问题描述】:

我正在使用 zgrep 查找一些包含大于 10000 的数字的字符串。我试过了

zgrep '[1-9]\d{4}' (filename here)

但没有返回任何内容。 谁能告诉我正确的用法和解释,将不胜感激。

【问题讨论】:

  • \d 字符类不受 grep 支持(可能还有 zgrep)。请改用[0-9]。搜索 BRE 语法。 BRE 语法中量词的大括号被转义 {4} => \{4\}
  • 我试过zgrep '[1-9][0-9]{4}'。但还是一无所获。我确信文件中有一些大于 50000 的数字。
  • 更新页面以查看我之前评论的结尾。
  • 试试:zgrep -E '[1-9][0-9]{4}' file
  • 它有效。非常感谢!!

标签: regex shell grep


【解决方案1】:

您的 zgrep 命令中缺少“-P”标志。

zgrep -P '[1-9]\d{4}'

“\d”用于Perl Regular Expression。如果没有“-P”标志,您将使用Basic Regular Expression。使用“-E”标志,您使用的是Extended Regular Expression

【讨论】:

  • 感谢您的解释
猜你喜欢
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-07
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多