我试图在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验证器站点上使用这个正则表达式,并且在这两个站点上都可以使用。知道为什么在我的代码中我得到一个空列表吗?
答案 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']