Como eu uso esta regex com grep?

1

Sou novo no regex e encontrei um comando em um site de tutorial / teste 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 uma lista de palavras usando:

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

    
por Austin 31.10.2016 / 06:53

1 resposta

3

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

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

que são suportados apenas por grep com PCRE, Expressão Regular Compatível com Perl ( -P )

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

% grep -Po '(?:([bcdfghjklmnpqrstvwxzy])(?!.{1,2})){3}' <<<'foobarspfb'
rsp
    
por 31.10.2016 / 06:58