在正则表达式替换上执行正则表达式?

时间:2015-08-12 00:17:32

标签: python regex

很抱歉,如果我在标题中使用了任何错误的字词,但这一直是一个困扰我的问题。

我有一些代码可以自动链接文本内的网址。

r = re.compile(r'\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^%s\s]|/)))')
url_parsed_comment = r.sub(r'<a tabindex=-1 target="blank" href="\1">\1</a>', comment_text)

如您所见,我获取找到的网址并将其传递给href,并将其传递给&lt; a&gt;标签

我想截断&lt; a&gt;内的文字。标签。相当于我想要的东西在python中会是这样的:

link = '<a href="' + url + '">' + url[:10] + '...</a>'

如何使用替换的正则表达式变量完成此操作?如何限制字符?

1 个答案:

答案 0 :(得分:0)

您可以在lambda中使用re.sub,例如:

>>> re.sub(r'([0-9]*)', lambda m: m.group(1)[:2], '---123456789---')
'---12---'

然后,您可以\1引用m.group(1)