gpt4 book ai didi

regex - 如何在 zgrep/zcat 命令中指定正则表达式?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:12 24 4
gpt4 key购买 nike

我想在一个单词列表中找到每个单词中至少有 3 次相同字母的单词。为了实现这一点,我做了 .*(\w).*\1.*\1.*\1.* 你可以在这里测试 http://www.regexplanet.com/advanced/java/index.html但我不知道如何将它放入我的 zgrep 命令中。

如何在 zgrep 命令中插入此正则表达式?

最佳答案

一些注意事项:

  • 您不需要使用 .* 匹配行的开头和结尾,因为允许部分匹配
  • \w 匹配 NFA 正则表达式中的字母、数字和下划线,在 POSIX 中,使用 [[:alnum:]_]
  • 更安全
  • 要在 POSIX BRE 模式中形成捕获组,请使用转义括号 \(...\)

因此,使用

zgrep '\([[:alnum:]_]\).*\1.*\1.*\1' a.gz

或者,稍微收缩一下,因为三个连续的 .*\1 子模式看起来有点多余:

zgrep '\([[:alnum:]_]\)\(.*\1\)\{3\}' a.gz

关于regex - 如何在 zgrep/zcat 命令中指定正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58409905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com