如果字符串为I am Fine
,则输出为I
。
import re
string='hello I am Fine'
print(re.search(r'[A-Z]?',string).group())
答案 0 :(得分:1)
您可以使用 findall 方法。
来自Python docs,7.2.5.6
部分,
findall() matches all occurrences of a pattern, not just the first one as search() does.
在你的情况下,
>>> re.findall(r'[A-Z]',"hello I am Fine")
['I', 'F']
答案 1 :(得分:0)
?
指定前面的字符或类可能存在也可能不存在。当re.search
开始搜索字符串时,它在字符串的开头找不到该类......由于?
,这是可接受的匹配。它只是返回空字符串。
>>> re.search(r'[A-Z]?', 'hello I am Fine').group()
''
如果您希望它找到第一个大写字母,请不要使用?
:
>>> re.search(r'[A-Z]', 'hello I am Fine').group()
'I'