2017-03-07 70 views
-2

我有一个正则表达式来获得一个URL,如http://www.test.combody这是一个电子邮件的内容。Python - 正则表达式忽略任何内容<>

然而,也可以在这个网址格式:<http://www.test.com>我想编辑以下正则表达式,这些符号<>

url = re.search('http[s]?://(?:[a-zA-Z]|[0-9]|[[email protected]&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', body) 
+0

这可能更容易不使用正则表达式。 – khelwood

+0

你会选择什么?我想也许试图在将字符串传递到正则表达式之前去除<>中的所有内容? – dperrie

+0

这可以通过非常非常简单的更改完成。搜索“正则表达式”。或者只是一般的正则表达式教程。你的正则表达式是过于复杂和多余的,几乎肯定有一个你没有注意到的错误(提示:在'[$ -_ @。&+]'中的'-') –

回答

2

如果你坚持使用正则表达式这样做内忽略任何东西,那么这个

(?<!<) 

因此全正则表达式将类似于:

可以使用 negative lookbehind完成210
(?<!<)http[s]?://(?:[a-zA-Z]|[0-9]|[[email protected]&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+ 
+0

啊是的,我现在正在阅读一个环视教程!完美的作品谢谢你! – dperrie