我想通過計算該單詞中元音的數量來計算一個單詞中的音節數,而不是計算以“ed”和“es”結尾的單詞中的最后一個“e”。
我運行了以下代碼,但我無法處理該例外:
import re
vowelRegex = re.compile(r'[aeiouAEIOU^ed$|^es$]')
vowelRegex.findall('RoboCoped eatsed babyes food. BABY FOOD.')
這是我得到的輸出:
['o',
'o',
'o',
'e',
'd',
'e',
'a',
's',
'e',
'd',
'a',
'e',
's',
'o',
'o',
'd',
'A',
'O',
'O']
uj5u.com熱心網友回復:
您可以使用
(?i)(?!e[ds]\b)[aeiou]
(?![eE][DdsS]\b)[aeiouAEIOU]
請參閱正則運算式演示。詳情:
(?i)- 啟用不區分大小寫的匹配(?!e[ds]\b)- 如果有ed或es緊跟在右側的單詞邊界,則不匹配[aeiou]- 字符集中列出的字母之一。
請參閱Python 演示:
import re
vowelRegex = re.compile(r'(?!e[ds]\b)[aeiou]', re.I)
print(vowelRegex.findall('RoboCoped eatsed babyes food. BABY FOOD.'))
print(vowelRegex.sub(r'(\g<0>)', 'RoboCoped eatsed babyes food. BABY FOOD.'))
輸出:
['o', 'o', 'o', 'e', 'a', 'a', 'o', 'o', 'A', 'O', 'O']
R(o)b(o)C(o)ped (e)(a)tsed b(a)byes f(o)(o)d. B(A)BY F(O)(O)D.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/411037.html
標籤:
