![](/img/trans.png)
[英]how to remove first letter if it's vowel and return no vowels if there is no vowel
[英]How to detect and print first letter after each vowel in a sentence?
我寫了這段代碼來檢測和打印每個元音后的第一個字母。 它的工作原理除非我輸入一個帶有兩個連續元音的單詞。 它忽略了第二個元音。 例如,如果我輸入“學年”,結果應為:
o
l
a
r
但我只能得到
o
a
那么我做錯了什么? 我對python很新,我還在學習。
def find_after_vowel(word):
for match in re.findall(r"[ouieaOUIEA](\w{1}|\s)", word):
print (match)
您可以使用finditer
和生成的匹配對象的start
方法來查找每個匹配的索引,然后使用它來獲取每個元音之后的字母:
import re
def find_after_vowel(word):
for match in re.finditer(r"[ouieaOUIEA]", word):
print word[match.start()+1]
find_after_vowel("school year")
哪個會輸出:
o
l
a
r
如果您希望它返回列表而不是打印結果,請使用:
import re
def find_after_vowel(word):
after_vowels = []
for match in re.finditer(r"[ouieaOUIEA]", word):
after_vowels.append(word[match.start()+1])
return after_vowels
after_vowels = find_after_vowel("school year")
print after_vowels
哪個會輸出:
['o', 'l', 'a', 'r']
試試以下正則表達式: [ouieaOUIEA]([^ouieaOUIEA]|\\s)
如果我理解你,你可以試試這個:
import re
def find_after_vowel(word):
index = re.search(r'[ouieaOUIEA]', word).span()[0] + 1
return word[index]
print(find_after_vowel('test')) # s
print(find_after_vowel('abc')) # b
print(find_after_vowel('def')) # f
print(find_after_vowel('abcdef')) # b
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.