300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python---正则表达式和关于贪婪匹配和懒惰匹配

python---正则表达式和关于贪婪匹配和懒惰匹配

时间:2023-11-27 04:32:40

相关推荐

python---正则表达式和关于贪婪匹配和懒惰匹配

目录

作业实验

关于贪婪匹配和懒惰匹配

作业实验

关于re

尝试从以下网页数据中提取歌曲名称、作者、歌曲文件名?

html = '''

经典老歌

经典老歌列表

<ul id="list" class="list-group">

<li data-view="7">

href="/2.mp3" singer="任贤齐">沧海一声笑

href="/3.mp3" singer="齐秦">往事随风

href="/4.mp3" singer="beyond">光辉岁月

href="/5.mp3" singer="陈慧琳">记事本

href="/6.mp3" singer="邓丽君">但愿人长久

ul>

'''

import re#re模块# text =html = '''经典老歌经典老歌列表<ul id="list" class="list-group"><li data-view="7">href="/2.mp3" singer="任贤齐">沧海一声笑href="/3.mp3" singer="齐秦">往事随风href="/4.mp3" singer="beyond">光辉岁月href="/5.mp3" singer="陈慧琳">记事本href="/6.mp3" singer="邓丽君">但愿人长久ul>'''mp = re.findall('\d.[mp][mp]\d',html, re.S)results = re.findall('singer.*?"(.+?)"',html)results2 = re.findall('singer=".*?">(.+?)\n',html, re.S)print(mp)print(results)print(results2)

这一块文本可能不大对,应该是老师布置作业的时候没注意,这个题我就是纯找规律做的

关于贪婪匹配和懒惰匹配

关于 ".*?"和 ".*" 的一些区别。

"."表示 匹配除换行符\n之外的任何单字符,*表示零到n次。

给一个文本是abcdefgcbbb

".*"则表示任意字符出现0或者n次,即贪婪模式。例:a.*c,此时不会匹配abc而是abcdefgc,即从a开始最后一个c

".*?"或者?跟在+后面,就是表示懒惰模式。例:a.*?c就会匹配abc,即匹配a后面的第一次出现的c。与".*?"不同,".+?"表示中间要有一个字符,例a.+?b,不会匹配ab而是匹配abcdefgcb,中间至少有一个字符。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。