有人可以将此 PHP 正则表达式转换为 Python 吗?我试了几次都没有成功:
function convertLinks($text) {
return preg_replace("/(?:(http:\/\/)|(www\.))(\S+\b\/?)([[:punct:]]*)(\s|$)/i",
"<a href=\"http://$2$3\" rel=\"nofollow\">$1$2$3</a>$4$5", $text);
}
编辑:我发现 [:punct:] 可以替换为 [!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~],所以我试过这个:
def convertLinks(text):
pat = re.compile(ur"""(?:(http://)|(www\.))(\S+\b\/?)([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]*)(\s|$)""", re.IGNORECASE)
return pat.sub(ur'<a href=\"http://\2\3" rel=\"nofollow\">\1\2\3</a>\4\5', text)
但我收到了 convertLinks(u"Test www.example.com test") 的“unmatched group”错误。