需要 grep + 正则表达式

需要 grep + 正则表达式

我需要找到包含以 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与您的正则表达式匹配的内容。

相关内容