我需要找到包含以 aeiou 顺序出现的元音的单词集。不需要连续出现。还允许每个元音在下一个元音出现之前多次出现,但在下一个元音出现后不再出现
基本输入列表 -https://jsfiddle.net/3mj72nwh/
到目前为止我使用了这些正则表达式
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
第一个的一些输出 -
appenditious,appetitious,arenicolous,arreptitious,arsenious
....
ultraexpeditious,ultrareligious,unfacetious
我的大部分输出都会满足条件,但其中一些则不满足。例如-超快速的因为当你之后发生的事情是单词中不能有任何元音。
答案1
您需要锚定您的搜索(或使用-x
):
grep -x '[^aeiou]*a[^eiou]*e[^aiou]*i[^aeou]*o[^aeiu]*u[^aeio]*'
ultraexpeditious
匹配,因为它包含aexpeditious
与您的正则表达式匹配的内容。