
Necesito encontrar un conjunto de palabras que contengan vocales que aparezcan en el mismo orden. No es necesario que aparezcan consecutivamente. También permite que cada vocal aparezca varias veces antes de que aparezca la siguiente, pero nunca vuelva a aparecer después de que haya ocurrido la siguiente vocal.
lista de entrada básica -https://jsfiddle.net/3mj72nwh/
hasta ahora usé estas expresiones regulares
grep 'a[^eiou]*e[^aiou]*i[^aeou]*o[^aeiu]*u[^aeio]*' words2.txt - this is the closest one that I got
grep 'a[^e^i^o^u]*e[^a^i^o^u]*i[^a^e^o^u]*o[^a^e^i^u]*u[^a^e^i^o]*' words2.txt
grep 'a.*e[^a]*i[^ae]*o[^aei]*u[^aeio]*' words2.txt
Y algunos resultados del primero:
appenditious,appetitious,arenicolous,arreptitious,arsenious
....
ultraexpeditious,ultrareligious,unfacetious
la mayoría de mis resultados cumplirán las condiciones, pero algunos no. p.ej -ultraexpeditivoporque cuandotuocurre después de eso no puede haber ninguna vocal en la palabra.
Respuesta1
Necesita anclar su búsqueda (o usar -x
):
grep -x '[^aeiou]*a[^eiou]*e[^aiou]*i[^aeou]*o[^aeiu]*u[^aeio]*'
ultraexpeditious
coincide porque contiene aexpeditious
cuál coincide con su expresión regular.