如何将这个正则表达式与 grep 一起使用?

如何将这个正则表达式与 grep 一起使用?

我是正则表达式新手,在正则表达式教程/测试网站上找到了一个命令,该命令允许我搜索 3 个连续的辅音。唯一的问题是我不知道如何将它与 grep 一起使用。有人会帮我吗?我正在尝试使用以下命令搜索单词列表文本文件:

(?:([bcdfghjklmnpqrstvwxzy])(?!.{1,2}\1)){3}

答案1

您拥有的正则表达式模式包含:

  • 非捕获组,(?:)
  • 零宽度负前瞻,(?!)

grep仅由 PCRE、Perl 兼容正则表达式 ( -P)支持

因此,您需要grep -P, 并仅捕获匹配的部分-o

% grep -Po '(?:([bcdfghjklmnpqrstvwxzy])(?!.{1,2}\1)){3}' <<<'foobarspfb'
rsp

相关内容