Como faço para usar esse regex com grep?

Como faço para usar esse regex com grep?

Sou novo em regex e encontrei um comando em um tutorial/site de teste de regex que me permitirá pesquisar três consoantes consecutivas. O único problema é que não consigo descobrir como usá-lo com o grep. Alguém me ajudaria? Estou tentando pesquisar um arquivo de texto de lista de palavras usando:

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

Responder1

O padrão Regex que você possui contém:

  • Grupo não capturador,(?:)
  • Lookahead negativo de largura zero,(?!)

que são suportados apenas por grepPCRE, expressão regular compatível com Perl ( -P)

Então você precisa grep -P, e para capturar apenas a parte correspondente -o,:

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

informação relacionada