python正则表达式如何更改边界之间的文本,而不是标签之间的文本

时间:2013-04-29 16:19:03

标签: python regex

在我的网络应用程序(django)中,我使用这样的东西(在循环中)自动更改带有内部链接的特殊单词:

value = re.sub(r'\b' + keyword.name +r'\b', unicode(internal_link), value, flags=re.UNICODE|re.IGNORECASE)

当它已经是一个链接时,有没有办法不改变它?

(例如,在></a>个字符之间或更好的东西)。

1 个答案:

答案 0 :(得分:1)

这样的事情:

reg = r'<//a{0}>|\b{0}\b'.format(keyword.name)

value = re.sub(reg,
               lambda match: match.group(1) if match.group(1) else unicode(internal_link),
               value,
               flags=....)