用一串长度相同的字符替换RegEx

hmg*_*aly 6 python regex

我想用一系列具有相同字符数的重复字符替换XML标签.

例如:

<o:LastSaved>2013-01-21T21:15:00Z</o:LastSaved>
Run Code Online (Sandbox Code Playgroud)

我想用以下代替:

#############2013-01-21T21:15:00Z##############
Run Code Online (Sandbox Code Playgroud)

我们如何使用RegEx呢?

Lev*_*sky 14

re.sub 接受函数作为替换:

re.sub(pattern, repl, string, count=0, flags=0)
Run Code Online (Sandbox Code Playgroud)

如果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##############'
Run Code Online (Sandbox Code Playgroud)

我使用的模式可能需要一些抛光,我不确定匹配XML标签的规范解决方案是什么.但是你明白了.