Python正则表达式没有给我任何匹配

时间:2017-10-05 19:26:45

标签: python regex

我试图在python中使用正则表达式匹配5位数的数字。这是我的代码:

 import re
 matchstring = "These are 10101 random numbers 34345."
 regex_string = r'(?<!\d)\d{5}(?!\d)'
 all_matches = re.findall(matchstring, regex_string) 

我不知道为什么我得到0匹配时我应该得到2.我已经尝试在2个python验证器站点上使用这个正则表达式,并且在这两个站点上都可以使用。知道为什么在我的代码中我得到一个空列表吗?

3 个答案:

答案 0 :(得分:4)

函数re.findall按顺序接受参数:pattern,then string:

re.findall(regex_string, matchstring)
['10101', '34345']

答案 1 :(得分:1)

你可以试试这个:

import re
matchstring = "These are 10101 random numbers 34345."
final_numbers = [i for i in re.findall("\d+", matchstring) if len(i) == 5]

输出:

['10101', '34345']

答案 2 :(得分:1)

import re
matchstring = "These are 10101 random numbers 34345."
regex_string = r"\b\d{5}\b"
re.findall(regex_string , matchstring) 

输出:

['10101', '34345']
相关问题