11

XML タグを、タグと同じ文字数の繰り返し文字のシーケンスに置き換えたいと考えています。

例えば:

<o:LastSaved>2013-01-21T21:15:00Z</o:LastSaved>

私はそれを置き換えたい:

#############2013-01-21T21:15:00Z##############

これに正規表現をどのように使用できますか?

4

1 に答える 1

22

re.sub関数を置換として受け入れます:

re.sub(pattern, repl, string, count=0, flags=0)

replが関数の場合、重複しないパターンが発生するたびに呼び出されます。この関数は、単一の一致オブジェクト引数を取り、置換文字列を返します。

次に例を示します。

In [1]: import re

In [2]: def repl(m):
   ...:     return '#' * len(m.group())
   ...: 

In [3]: re.sub(r'<[^<>]*?>', repl,
   ...:     '<o:LastSaved>2013-01-21T21:15:00Z</o:LastSaved>')
Out[3]: '#############2013-01-21T21:15:00Z##############'

私が使用したパターンには多少の磨きが必要かもしれませんが、XMLタグを照合するための標準的な解決策が何であるかはわかりません。しかし、あなたはその考えを理解します。

于 2013-01-21T21:49:09.377 に答える