この正規表現をgrepでどのように使用できますか?

この正規表現をgrepでどのように使用できますか?

私は最初に正規表現に触れ、正規表現のチュートリアル/テストサイトで3つの連続子音を検索するためのコマンドを見つけました。唯一の問題は、grepで使用する方法がわからないことです。誰でも私を助けることができますか?以下を使用して単語リストのテキストファイルを検索します。

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

答え1

持っている正規表現パターンには以下が含まれます。

  • 非キャプチャグループ、(?:)
  • 幅0の否定予測、(?!)

grepPCRE、Perl互換正規表現でのみサポートされています(-P

したがって、必要grep -Pと一致する部分だけをキャプチャします-o

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

関連情報