Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过regexp限制匹配数_Python_Regex - Fatal编程技术网

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'