Python Regex子函数

时间:2012-10-13 11:32:45

标签: python regex

我试图在python中使用sub函数但无法使其工作。到目前为止我已经

content = '**hello**'
content = re.sub('**(.*)**', '<i>(.*)</i>', content)

我正在尝试制作

**hello**

替换为

<i>hello</i>

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您需要转义*字符,并使用替换函数:

content = '**hello**'
content = re.sub('\*\*(.*)\*\*', lambda p : '<i>%s</i>' % p.group(1), content)

作为替代方案,您可以使用命名组。

content = re.sub('\*\*(?P<name>.*)\*\*', '<i>\g<name></i>', '**hello**')

或者作为更好的选择,编号组。

content = re.sub('\*\*(.*)\*\*', '<i>\\1</i>', '**hello**')