私はこの(簡体字)のように見える設定ファイル解析する必要があります:私の目標は、特定のリンクに固有のパラメータを変更できるようにすることですが、私は置換が正しく動作するのに問題を抱えているre.sub(またはregexobject.sub)を使用して、サブグループ内のテキストを置き換えることはできますか?
<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>
を。したがって
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)
プリントのIPSec
例:私は値がキャプチャグループ1に含まれている特定のリンク上でパラメータ値を単離することができる正規表現を持っていますregex howtoでは、すべてが置換でキャプチャグループを使用したいと思っているようですが、キャプチャグループ自体を置き換えるだけです(Link1モードをipsecからudpに変更するなど)。
置換文字列が機能しました。 –
なぜ私はregの代わりにいくつかのXMLライブラリを使用しないでください知って興味がありますか? –
XMLの知識が限られていることや、他の開発者が正規表現を使って問題を解決する方法が正解であることなど、いくつかの要因があります。つまり、実装するのが比較的簡単だと思われるので、BeautifulSoupオプションを使用することもできます。 –