相信很多小伙伴刚接触正则这个词语,脑海中一点概念也没有,其实从字面上我们稍微能够揣摩到一点,这需要去“接触”内容,由此,那就可以展开本章话题。
先看一组后台收到的代码数据,要求正则获取网页内容:
*以下为网页源代码,一个列表(12行),需要获取 ID后面的数字和中文内容,并保存到文本。
<ulid="iyy_speak"> <li><ahref="player.php?type=2&id=46819"target="_blank">中文内容</a><spanclass="yy_man"><ahref="player.php?type=2&id=46819"target="_blank">试听</a></span></li> <li><ahref="player.php?type=2&id=46818"target="_blank">中文内容2</a><spanclass="yy_man"><ahref="player.php?type=2&id=46818"target="_blank">试听</a></span></li> <li><ahref="player.php?type=2&id=45717"target="_blank">中文内容3</a><spanclass="yy_man"><ahref="player.php?type=2&id=45717"target="_blank">试听</a></span></li> </ul>
代码演示:
#!/usr/bin/envpython #coding=utf-8 importre string=''' <ulid="iyy_speak"> <li><ahref="player.php?type=2&id=46819"target="_blank">中文内容</a><spanclass="yy_man"><ahref="player.php?type=2&id=46819"target="_blank">试听</a></span></li> <li><ahref="player.php?type=2&id=46818"target="_blank">中文内容2</a><spanclass="yy_man"><ahref="player.php?type=2&id=46818"target="_blank">试听</a></span></li> <li><ahref="player.php?type=2&id=45717"target="_blank">中文内容3</a><spanclass="yy_man"><ahref="player.php?type=2&id=45717"target="_blank">试听</a></span></li> </ul> ''' match=re.findall("<li><ahref=\"player.php\?type=2\&id=(\d+)\".*?>(.*?)\<",string) forx,yinmatch: printx,y.decode('utf-8')
认识正则表达式:
正则表达式就是对字符串进行操作的逻辑公式,相当于‘过滤’这个字符串。一开始学习可能是懵懂的,小编就是这样,后来一直不停的复习,总算是学会了。
常用正则表达式:
单字符:
. : 除换行以外所有字符
[] :[aoe] [a-w] 匹配集合中任意一个字符
\d :数字 [0-9]
\D : 非数字
\w :数字、字母、下划线、中文
\W : 非\w
\s :所有的空白字符包,括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S : 非空白
数量修饰:
* : 任意多次 >=0
+ : 至少1次 >=1
? : 可有可无 0次或者1次
{m} :固定m次 hello{3,}
{m,} :至少m次
{m,n} :m-n次
边界:
$ : 以某某结尾
^ : 以某某开头
原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容