我想用与标记字符数相同的重复字符序列替换 XML 标记。
例如:
<o:LastSaved>2013-01-21T21:15:00Z</o:LastSaved>
我想将其替换为:
#############2013-01-21T21:15:00Z##############
我们如何使用 RegEx 呢?
re.sub
接受一个函数作为替换:
re.sub(pattern, repl, string, count=0, flags=0)
If
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 标记的规范解决方案是什么。但你明白了。