需要 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與您的正規表示式相符的內容。

相關內容