鱼C论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 335|回复: 7

[已解决]关于python正则表达式求助

[复制链接]
最佳答案
5 
发表于 2019-3-20 23:13:32 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 xue11 于 2019-3-20 23:54 编辑

>>> import re
>>> content = '我们下载:https://www.baidu.com/啊啊啊下载:https://www.zhihu.com祝你'
>>> result = re.findall(r'^http.*?com$',content)
>>> print(result)
[]
>>>

问题1:这里想匹配者两个网址并提取,这种匹配以http开头,以com结尾去匹配,中间是任意字符;为什么返回为空啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
14 
发表于 2019-3-20 23:13:33 | 显示全部楼层    本楼为最佳答案   
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1605 
发表于 2019-3-21 07:14:00 | 显示全部楼层
本帖最后由 塔利班 于 2019-3-21 08:59 编辑

你加了^&这样的字符,你知道什么意义么,你的.com不是结尾位置
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2019-3-21 09:41:32 | 显示全部楼层
把^$去掉,
  1. import re
  2. content = '我们下载:https://www.baidu.com/啊啊啊下载:https://www.zhihu.com祝你'
  3. re.findall(r'http.*?com',content)谢谢
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
12 
发表于 2019-3-21 14:24:10 | 显示全部楼层
你对正则理解不对,字符串content内容既不是http开头又不是com结尾,这么匹配自然没有结果。
去掉^和$就可以了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
5 
 楼主| 发表于 2019-3-21 21:09:21 From FishC Mobile | 显示全部楼层
大裤衩子 发表于 2019-3-21 14:24
你对正则理解不对,字符串content内容既不是http开头又不是com结尾,这么匹配自然没有结果。
去掉^和$就可 ...

^是对字符串开头而言的么?不是针对你要提取内容的开头而言的吗
来自: 微社区
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
5 
 楼主| 发表于 2019-3-21 21:10:22 From FishC Mobile | 显示全部楼层
[quote]塔利班 发表于 2019-3-21 07:14
你加了^

脱字符不是匹配字符串的开头么?难道我理解错了
来自: 微社区
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
12 
发表于 2019-3-22 09:41:49 | 显示全部楼层
xue11 发表于 2019-3-21 21:09
^是对字符串开头而言的么?不是针对你要提取内容的开头而言的吗

我知道你的正则写成这样: re.findall(r'^http.*?com$',content)的意思就是为了单独匹配出两个网址,但是写成这样真正能匹配出来的只能是以http开头,以com结尾的一整句;而你提供的content的内容不满足这个形式啊,所以啥都匹配不到啊,这就是我的理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2019-5-25 01:24

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表