繁体   English   中英

Python正则表达式:仅替换捕获的组

[英]Python Regex: Only Replace captured group

我有一个正则表达式与一个“别名”键匹配,该键是markdown文件中的现有列表,并且将右括号作为一个组捕获。

RE_ALIASES = re.compile(r'\s*---\n.*aliases:\s?\[.*(\]|\n\]).*\n---.*', re.DOTALL)

如何用自己的文字替换捕获的组?

---
...
aliases: [
   hello,
   world
]
---
...

应该

---
...
aliases: [
   hello,
   world,
   inserted
]
---
...

在这种情况下,第一组\\n]被替换为,\\n inserted\\n]

我认为您应该使用re.sub函数

这是适用于您的案例的方法:

(假设您将初始字符串保存为initial_string)

final_string = re.sub('(\\]|\\n\\]).*', ',\n\tinserted\n\t]', initial_string)

如果打印“ final_string”,则显示:

---
...
aliases: [
        hello,
        world,
        inserted
        ]
---
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM