Python 如何通过regexp限制匹配数
我有以下字符串:Python 如何通过regexp限制匹配数,python,regex,Python,Regex,我有以下字符串: "It was in 1990. Then it was in 1992. Then it was in 2000. Then it was in 2005. Then it was in 2010." 我有以下regexp与字符串中的年份匹配: \d{4} 它匹配字符串中存在的所有年份。我想要的是将regexp限制为仅第一个匹配项,以便它只给我“1990”。我在pytho中使用以下代码: import re s = "It was in 1990. Then it wa
"It was in 1990. Then it was in 1992. Then it was in 2000. Then it was in 2005. Then it was in 2010."
我有以下regexp与字符串中的年份匹配:
\d{4}
它匹配字符串中存在的所有年份。我想要的是将regexp限制为仅第一个匹配项,以便它只给我“1990”。我在pytho中使用以下代码:
import re
s = "It was in 1990. Then it was in 1992. Then it was in 2000. Then it was in 2005. Then it was in 2010."
print re.findall(r"\d{4}", s)
['1990', '1992', '2000', '2005', '2010'] # output
我知道我可以通过添加[0]获得第一个,如下所示:
print re.findall(r"\d{4}", s)[0]
1990 # output
但是我特别寻找一个正则表达式模式来获得这个输出。使用:
>>重新导入
>>>s=“那是在1990年。然后是1992年。然后是2000年。然后是2005年。然后是2010年。”
>>>重新搜索(“\d{4}”,s)
>>>重新搜索(“\d{4}”,s).group()
'1990'
>>>
使用:
>>重新导入
>>>s=“那是在1990年。然后是1992年。然后是2000年。然后是2005年。然后是2010年。”
>>>重新搜索(“\d{4}”,s)
>>>重新搜索(“\d{4}”,s).group()
'1990'
>>>
使用:
>>重新导入
>>>s=“那是在1990年。然后是1992年。然后是2000年。然后是2005年。然后是2010年。”
>>>重新搜索(“\d{4}”,s)
>>>重新搜索(“\d{4}”,s).group()
'1990'
>>>
使用:
>>重新导入
>>>s=“那是在1990年。然后是1992年。然后是2000年。然后是2005年。然后是2010年。”
>>>重新搜索(“\d{4}”,s)
>>>重新搜索(“\d{4}”,s).group()
'1990'
>>>
您还可以使用re.finditer(r“\d{4}”,s)
您还可以使用
re.finditer(r“\d{4}”,s)
您还可以使用
re.finditer(r“\d{4}”,s)
您还可以使用
re.finditer(r“\d{4}”,s)
您可以改为使用re.search。它返回MatchObject或null。您可以通过调用MatchObject上的组(0)从MatchObject中获取匹配的文本。您可以改为使用re.search。它返回MatchObject或null。您可以通过调用MatchObject上的组(0)从MatchObject中获取匹配的文本。您可以改为使用re.search。它返回MatchObject或null。您可以通过调用MatchObject上的组(0)从MatchObject中获取匹配的文本。您可以改为使用re.search。它返回MatchObject或null。通过调用MatchObject上的组(0),可以从MatchObject获取匹配的文本
>>> import re
>>> s = "It was in 1990. Then it was in 1992. Then it was in 2000. Then it was in 2005. Then it was in 2010."
>>> re.search("\d{4}", s)
<_sre.SRE_Match object at 0x01939AA0>
>>> re.search("\d{4}", s).group()
'1990'
>>>
In [38]: import re
In [39]: s = "It was in 1990. Then it was in 1992. Then it was in 2000. Then it was in 2005. Then it was in 2010."
In [40]: ret = re.finditer(r"\d{4}", s)
In [41]: ret.next().group()
Out[41]: '1990'