题目
Code
-法1
import re
obj=re.compile(r'[aeiou][aeiou]+')
words=input().split()
for word in words:
mat=obj.findall(word)
if len(mat)==0:
print('No')
else:
print(' '.join(mat))
代码解析
使用正则表达式进行每个单词的匹配,这里需要我们了解正则匹配的机制,+
代表前面的字符出现>=1次,
[ ]则是说里面的东西可选择一个匹配,[]
里是或的关系,像[a-z]就是表示小写26个字母其中一个嘛。
findall()
是返回一个列表,所以要对输出进行一个处理
解题思路
- 首先明确需要找的是aeiou元音,然后写出对应的pattern
- 思考题目要求的输出要什么样的条件,写一个if-else
奇技淫巧
- Q:连续元音的pattern要怎么写?
–>写两个【】【】,里面写上aeiou,可以实现第一个位置是1/5,第二个位置1/5,且+表示>=1 - Q:返回的是列表怎么办?
–>直接再输出的时候加上‘ ’.join的函数把列表变成字符串