python 我是用的是分组非贪婪匹配 正则匹配,为什么匹配结果少了7?
python 正则匹配,为什么匹配结果少了7?我是用的是分组非贪婪匹配
代码如下:
url = "http://tiebapic.baidu.com/forum/w%3D580/sign=33b74ba68b11728b302d8c2af8fdc3b3/9728d9177f3e67097e8a81c87dc79f3df9dc55aa.jpg?tbpicau=2024-01-18-05_4f80cd1a7f322fc1e38464b6e05d9188"
pattern = re.compile(r'http://tiebapic.baidu.com/(.+?)sign=.+?\/(.+?).(.+?)\?tbpicau=', re.S)
filenames = pattern.findall(url)
filename = '%s%s%s' % (filenames[0][0], filenames[0][1], filenames[0][2])
print(filename)
//输出结果:
forum/w33D580/928d9177f3e67097e8a81c87dc79f3df9dc55aa.jpg
//期望输出结果:
forum/w33D580/9728d9177f3e67097e8a81c87dc79f3df9dc55aa.jpg
为什么结果中928d9177f3e67097e8a81c87dc79f3df9dc55aa.jpg 少了7?
回复
1个回答
test
2024-06-23
正则的.表示任意字符,如果中间匹配字符点使用转义.按你的做法去掉点,期望值怎么还会是.jpg呢不需要去掉点的话,这(.+?).(.+?)又是莫名其妙的做法
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容