Je rencontre un problème lors de la compilation de l'expression régulière correcte pour une correspondance multiligne. Quelqu'un peut-il signaler ce que je fais mal. Je boucle à travers un fichier dhcpd.conf de base avec des centaines d'entrées telles que:python multiline regex
host node20007
{
hardware ethernet 00:22:38:8f:1f:43;
fixed-address node20007.domain.com;
}
J'ai eu différents de regex de travailler pour le MAC et l'adresse fixe, mais ne peut les combiner pour correspondre correctement.
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()
Actuellement mes groupes match ressemblera:
('hardware ethernet 00: 22: 38: 8F: 1F: 43', '00: 22: 38: 8F: 1F: 43' , '')
Mais la recherche de quelque chose comme:
('hardware ethernet 00: 22: 38: 8F: 1F: 43', '00: 22: 38: 8F: 1F: 43' , « node20007.domain.com ')
http://www.pythonregex.com/ – nmichaels
Si le fichier est exactement ce format, il pourrait être plus facile yo juste diviser les lignes sur les espaces et prendre l'élément à la fin que la valeur – Mark