python - python输出的正则表达式不正确

标签 python regex

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/

相关文章:

Jenkins API 的 Python 日期时间问题

JAVA - 拆分包含分隔符#| 的字符串.如果多次出现#|,字符串也应该拆分喜欢 - #|#|

python - 带有 pandas 的日期正则表达式过滤器不起作用

python - 如何将表情符号添加到电报机器人 python 的菜单中?

python - 在elasticsearch dsl中重置索引名称

Python time.sleep(1) 立即完成

python - 如何修复 django 中的 GET 参数错误?

Python 正则表达式匹配或运算符

javascript - Hubot 不响应正则表达式变量

python - 如何使用正则表达式查找行并删除任何前面的行