关于正则表达式的问题
我用
p = re.compile(r'data-imgurl=\"(.+?)\"')
result = p.findall(all_img)
去匹配
data-imgurl="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2238425304,2589246158&fm=26&gp=0.jpg"
结果开头没有data-imgurl=
是我哪里错了么?请同学们指正
正在回答 回答被采纳积分+1
同学你好:
1. 正则表达式中当没有括号时,就是正常匹配,在本例中"/w+/s+/w+"第一次匹配到的字符为"2345 3456",由于是贪婪模式会 继续匹配,第二次从"4567"开始匹配匹配到的结果为字符串"4567 5678"
import re
string="2345 3456 4567 5678"
regex=re.compile("\w+\s+\w+")
print(regex.findall(string))
#['2345 3456', '4567 5678']
2. 正则表达式中有一个括号时,其输出的内容就是括号匹配到的内容,而不是整个表达式所匹配到的结果,但是整个正则表达式执 行了只不过只输出括号匹配到的内容, 在第一次匹配时跟上述没有括号时一样,匹配到 "2345 3456" ,只不过只输出(/w+)匹配 到的结果 即"2345",第二次匹配同理从"4567" 开始,匹配到"4567 5678",但是还是只是输出"4567"
import re
string="2345 3456 4567 5678"
regex=re.compile("(\w+)\s+\w+")
print(regex.findall(string))
#['2345', '4567']
由于同学的正则匹配有括号(分组),所以只会输出组中的内容。

如果我解决了同学的问题,请采纳!学习愉快^_^。
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
老师,为什么这里只会输出符合组内容的第3个
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星