У меня возникла проблема с компиляцией правильного регулярного выражения для многострочного совпадения. Может кто-то указать, что я делаю неправильно. Я перекручивание через основной файл dhcpd.conf с сотнями записей, такие как:python multiline regex
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: 8е: 1f: 43' , '')
Но искал что-то вроде:
('оборудования локальных сетей 00: 22: 38: 8е: 1f: 43', '00: 22: 38: 8е: 1f: 43' , «node20007.domain.com ')
http://www.pythonregex.com/ – nmichaels
Если файл именно этот формат может быть проще просто йо разделите строки на пробелы и возьмите элемент в конце как значение – Mark