这是我到目前为止所拥有的
my_str = "The sky's the limit"
regex = re.findall(r"\b\w*?[aeiouAEIOU]", my_str)
joined_str = ", ".join(regex)
print(joined_str)
我希望它打印
e, e, i
但打印
The, the, li
那么如何用元音忽略单词的前一个字符并打印每个单词的第一个元音并用逗号分隔元音?
答案 0 :(得分:4)
您只需通过将其封装在捕获组中来限制要返回的表达式的一部分:
>>> re.findall(r"\b\w*?([aeiouAEIOU])", my_str)
['e', 'e', 'i']
()
告诉正则表达式引擎只返回()
中表达式的匹配项。
答案 1 :(得分:0)
如果没有正则表达式,你可以这样做,就像这样:
def find_first_vowel(s):
first_vowels = ''
for word in s.split():
for index, char in enumerate(word):
if char in 'aeiouAEIOU': # you can check the index here
first_vowels += char
break
return ', '.join(first_vowels)
my_str = "The sky's the limit"
>>> print(find_first_vowel(my_str))
e, e, i