我有一串时间,例如:
text = '2010; 04/20/2010; 04/2009'
我想只找到第一个独立的' 2010',但应用以下代码:
re.findall(r'\d{4}', text)
也会找到第二个' 2010'以mm / dd / yyyy格式嵌入。
有没有办法实现这一目标(不使用&#39 ;;'标志)?
答案 0 :(得分:2)
您可以使用re.search
仅查找第一个匹配项:
>>> import re
>>> text = '2010; 04/20/2010; 04/2009'
>>> re.search('\d{4}', text)
<_sre.SRE_Match object; span=(0, 4), match='2010'>
>>> re.search('\d{4}', text).group()
'2010'
>>>
来自文档:
re.search(pattern, string, flags=0)
浏览
string
寻找 正则表达式pattern
生成的第一个位置 匹配,并返回相应的match object。如果没有,请返回None
字符串中的位置与模式匹配;请注意这是 不同于在某个点找到零长度匹配 字符串。
强调我的。
答案 1 :(得分:1)