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

发布于 2021-01-29 17:32:43

我想用具有相同数量标签的重复字符序列替换XML标签。

例如:

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

我要替换为:

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

我们如何为此使用RegEx?

关注者
0
被浏览
51
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    re.sub 接受替代功能:

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

    如果repl是函数,则在每次非重叠发生模式时都会调用它。该函数采用单个match对象参数,并返回替换字符串。

    这是一个例子:

    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标签的规范解决方案是什么。但是你明白了。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看