Ele procura zero ou mais consoantes ( [^aieou]*
) seguido por 5 a 7 vogais ( ([aieou]){5,7}
) seguidas por zero ou mais consoantes ( [^aieou]*
). Toda a expressão regular está ancorada no início da linha ( ^
) e no final, ( $
).
Exemplo
$ egrep '^([^aieou]*[aieou]){5,7}[^aieou]*$' \
/usr/share/dict/words | head -10
abacinate
abacination
abacterial
abaisance
abalation
abalienate
abalienated
abalienating
abalienation
abandonable
Detalhes
Então, quando ele corresponde a essa primeira palavra, abacinate
, a primeira letra a tem 0 consoantes à esquerda, então combinamos essa parte.
Como as vogais adicionais com zero ou mais consoantes são encontradas à esquerda e / ou à direita, também correspondemos a essas situações. Se encontrarmos de 5 a 7 deles, então combinamos.