替换多个正则表达式组

时间:2017-02-06 16:03:49

标签: python regex

我想用字符串替换多个正则表达式组。但是我希望每个小组都有不同的替代方式。

给出字符串:

"{Family} is made up of [Father], [Mother], and [Daughter] also there are 100 monkeys in a tree."

我想获得:

"<b>{Family}</b> is made up of <i>[Father]</i>, <i>[Mother]</i>, and <i>[Daughter]</i> also there are <h4>100</h4> monkeys in a tree."

我正在使用多个re.sub传递。我对正则表达式很陌生,无法找到关于单个替换是否可行的信息?如果是这样,替换格式是什么样的?

这就是我所拥有的:

import re

text = re.sub(r'(\{[^\}]*\})', r'<b>\1</b>', text)
text = re.sub(r'(\[[^\]]*\])', r'<i>\1</i>', text)
re.sub(r'(\d+)', r'<h>\1</h>, text)

以下可能吗?甚至是正确的方法?

re.sub(r'(\{[^\}]*\})|(\[[^\]]*\]|(\d+))', ???, text)

编辑:

将问题更改为更具体。感谢您的解决方案,但它们不一定允许您捕获任何正则表达式组,并且没有具体回答替代方法是否允许直接使用。

0 个答案:

没有答案