我遇到了一个编译多行匹配正则表达式的问题,能否有人指出我做错了什么。我正在循环遍历一个包含数百个条目的基本dhcpd.conf文件,例如:
host node20007
{
hardware ethernet 00:22:38:8f:1f:43;
fixed-address node20007.domain.com;
}
我已经成功使用各种正则表达式来匹配MAC地址和固定IP地址,但是无法将它们组合起来正确匹配。
f = open('/etc/dhcp3/dhcpd.conf', 'r')
re_hostinfo = re.compile(r'(hardware ethernet (.*))\;(?:\n|\r|\r\n?)(.*)',re.MULTILINE)
for host in f:
match = re_hostinfo.search(host)
if match:
print match.groups()
目前,我的匹配结果如下:
('hardware ethernet 00:22:38:8f:1f:43', '00:22:38:8f:1f:43', '')
但是我想寻找下面这样的结果:
('hardware ethernet 00:22:38:8f:1f:43', '00:22:38:8f:1f:43', 'node20007.domain.com')