跪求高手把这段正则表达式改得比较简单一点

前些天到网上一段正则,过滤url的代码如下:
importre
url='转载请附带本文网址:http://www.zhangte.org'
P=re.compile('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
P.sub('',url)
但是这段代码只可以过滤带有http的url,如果没有http,就过滤不了,比如这种url就过滤不了www.zhangte.org
所以我修改一下,变成这种正则
html="你好www.zhangte.org"
P=re.compile('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+|(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
P.sub('',html)
但是感觉整体逻辑看起来,很乱,我用的是最简单最粗暴的方式,直接用|,然后把前面的http[s]?://去掉,然后就拼接起来了,勉强可以用,但是感觉看起来太蛋疼了,有比较好的办法吗?
月关宝盒
浏览 319回答 2
2回答

蛊毒传说

将前面的http://括起来P=re.compile('(https?://)?(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')

芜湖不芜

格式不固定,容易误杀,提供一种方案吧...(https?:\/\/)?([^\.\s]\.)+(com|cn|org)后缀如果不担心误杀可以和前面分组一致,毕竟补全还是比较麻烦的不知道为啥sf传不了图片了...一直报错,正则示意图链接
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript