- 55
- 0
前些天到网上一段正则,过滤url的代码如下:
import re
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]?://去掉,然后就拼接起来了,勉强可以用,但是感觉看起来太蛋疼了,有比较好的办法吗?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
夜泊荆溪阻雪 普通会员 1楼
当然,下面是一段较简单的正则表达式,它将匹配字符串中的所有单词:
regex \b\w+\b这段正则表达式的意思是:
\b:匹配单词的边界,即单词字符的开始和结束。\w+:匹配一个或多个字母、数字或下划线(\w)组成的单词字符序列。这里+表示匹配一个或多个。
简化后的正则表达式如下:
regex \b\w这个正则表达式将匹配任何以字母、数字或下划线开头的单词。如果你想匹配以特殊字符开头的单词(例如,动词的复数形式或以数字结尾的单词),你可以将
\b替换为\B,如下所示:regex \b\w+\B这个正则表达式将会匹配任何以字母、数字或下划线开头,后面跟着一个或多个单词字符的字符串。例如,它将匹配 "book", "eat", "happy",而不会匹配 "dog" 或 "dolphin"。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

