【发布时间】:2017-05-16 14:37:33
【问题描述】:
我正在尝试从一些示例文本中返回 MAC 地址列表。 re.search 返回第一个结果,在这种情况下,我想要所有结果,但我只得到一个。当我使用re.findall 时,它会返回每个 MAC 地址的最后一个字符,而不是完整的地址。
有什么想法吗?
例如:
>>> test = """
... Mac Address Table
... -------------------------------------------
...
... Vlan Mac Address Type Ports
... ---- ----------- -------- -----
... 66 0800.0e54.9df0 STATIC Gi2/0/27
... 100 5046.5a08.5a60 STATIC Gi2/0/27
... Total Mac Addresses for this criterion: 2
... """
macs = re.search(r"([0-9A-Fa-f]){4}\.([0-9A-Fa-f]){4}\.([0-9A-Fa-f]){4}",test)
>>> print macs.group()
0800.0f54.99f0
macs = re.findall(r"([0-9A-Fa-f]){4}\.([0-9A-Fa-f]){4}\.([0-9A-Fa-f]){4}",test)
[('0', '4', '0'), ('6', '8', '0')]
【问题讨论】:
-
删除所有捕获组。
macs = re.findall(r"[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}",test) -
谢谢!你想把它添加为答案以便我接受吗?