python搜索替换n个非嵌套组的匹配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python搜索替换n个非嵌套组的匹配相关的知识,希望对你有一定的参考价值。

  1. import re
  2.  
  3.  
  4. def replace(match, withwhat):
  5.  
  6. starttext = match.group(0)
  7. n = len(withwhat)
  8. off = match.start(0)
  9.  
  10. tmp = starttext
  11. for i in range(n):
  12. delta = len(tmp)-len(starttext)
  13. tmp = tmp[:match.start(i+1)-off+delta ] + withwhat[i](match.group(i+1)) + tmp[match.end(i+1)-off+delta:]
  14. return tmp
  15.  
  16. #test
  17. funcs = [lambda x: '1'+x+'1',lambda x: '2'+x+'2']
  18. #regex contains 2 capturing groups
  19. print re.sub(regex, lambda x: replace(x, funcs), text)

以上是关于python搜索替换n个非嵌套组的匹配的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 或 posix 工具搜索和替换字符串中的匹配括号

Boost.Python:匹配 C++ 模板类型的嵌套命名空间

Python 避免字典和元组的多重嵌套

python的N个小功能(文件内容的匹配替换)

python 使用 sorted 对 列表嵌套元组的数据进行排序

Python文件搜索替换