誰かがこの 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" エラーを受け取りました。