Мне нужно проанализировать файл конфигурации, который выглядит следующим образом (упрощенно):
<config>
<links>
<link name="Link1" id="1">
<encapsulation>
<mode>ipsec</mode>
</encapsulation>
</link>
<link name="Link2" id="2">
<encapsulation>
<mode>udp</mode>
</encapsulation>
</link>
</links>
Моя цель - иметь возможность изменять параметры, специфичные для конкретной ссылки, но у меня возникают проблемы с корректной работой замены. У меня есть регулярное выражение, которое может изолировать значение параметра в конкретной ссылке, где значение содержится в группе захвата 1:
link_id = r'id="1"'
parameter = 'mode'
link_regex = '<link [\w\W]+ %s>[\w\W]*[\w\W]*<%s>([\w\W]*)</%s>[\w\W]*</link>' \
% (link_id, parameter, parameter)
Таким образом,
print re.search(final_regex, f_read).group(1)
печать
* 1010 IPSec *
Примеры в regex howto все, кажется, предполагают, что кто-то хочет использовать группу захвата в замене, но мне нужно заменить саму группу захвата (например, изменить режим Link1 ipsec to udp).