我遇到了編譯多行匹配的正確正則表達式的問題。有人能指出我做錯了什麼嗎?我通過一個基本的dhcpd.conf文件循環與數百個條目,如:蟒蛇多行正則表達式
host node20007
{
hardware ethernet 00:22:38:8f:1f:43;
fixed-address node20007.domain.com;
}
我已經得到了不同的正則表達式的爲MAC和固定地址的工作,但不能將它們組合起來,以正確地匹配。
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()
目前我比賽團體看起來像:
( '硬件以太網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 ')
http://www.pythonregex.com/ – nmichaels 2011-01-19 21:08:13
如果文件正是這種形式可能更容易喲剛在空格上分割線條並將最後的元素作爲值 – Mark 2011-01-19 21:10:14