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 grep
PCRE, 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