import os,re
def test():
list = re.findall(r'(255\.){2}','255.255.252.255.255.12')
print list
if __name__ == '__main__':
test()
输出:“['255.', '255.']”
为什么不【255.255,255.255】?
macch 对象应该是“255.255”
怎样才能得到正确的输出结果?
最佳答案
在您的正则表达式中,您仅捕获第一个 255.
。您需要将要捕获的所有内容包装在捕获组中:
>>> re.findall(r'((?:255\.){2})','255.255.252.255.255.12')
['255.255.', '255.255.']
(?:...)
是非捕获组。它基本上可以让您对事物进行分组,而无需将它们显示为捕获的组。
关于python - python输出的正则表达式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13774048/