簡體   English   中英

正則表達式:如何匹配沒有連續元音的單詞?

[英]Regex: How to match words without consecutive vowels?

我是regex的新手,我已經能夠找到可以很容易匹配的正則表達式,但我不確定如何只匹配沒有它的單詞。

我有一個.txt文件,里面有像

sheep
fleece
eggs
meat
potato

我想制作一個正則表達式來匹配元音不連續重復的單詞,這樣它就會返回eggs meat potato

我對正則表達式並不是很有經驗,而且我一直無法找到關於如何在線進行此操作的內容,所以如果有經驗豐富的人可以幫助我,那就太棒了。 謝謝!

我正在使用python並且已經使用https://regex101.com測試我的正則表達式。

謝謝!

編輯:為正則表達式提供了錯誤的結果示例。 固定。

請注意,由於所需的輸出包括meat而不是fleece ,所以允許所需的單詞具有重復的元音,而不是重復的元音。

要選擇沒有重復元音的行:

>>> [w for w in open('file.txt') if not re.search(r'([aeiou])\1', w)]
['eggs\n', 'meat\n', 'potato\n']

正則表達式[aeiou]匹配任何元音(如果你願意,你可以包括y )。 正則表達式([aeiou])\\1匹配任何元音,后跟相同的元音。 因此, not re.search(r'([aeiou])\\1', w)僅適用於不包含重復元音的字符串w

附錄

如果我們想排除meat因為它連續有兩個元音,即使它們不是同一個元音,那么:

>>> [w for w in open('file.txt') if not re.search(r'[aeiou]{2}', w)]
['eggs\n', 'potato\n']

@ John1024的答案應該有用我也會嘗試

“\\ W *(一個{2,} | E {2,} | I {2,} | O {2,} | U {2,})\\ W *” IG

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM