码迷,mamicode.com
首页 > 其他好文 > 详细

正则和re模块

时间:2019-01-05 22:49:54      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:family   程序   re模块   含义   alt   match   需要   find   匹配   

一.正则表达式.

什么是正则表达式:

在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码

技术分享图片

量词:

技术分享图片

贪婪匹配机制和惰性机制:

技术分享图片

技术分享图片

 

有一个特殊的组合就 .*?  它会有惰性机制,如果后面不给数据,就什么也不取,如果后面给一个 x 就是截至到 x 取值

技术分享图片

正则表达式的分组:

在正则表达式中我们用()进行分组,在用re模块时,用分组后,在读取时,可以将分组的数据读出来,而舍弃其余数据.

转义:

在正则表达式中, 有很多有特殊意义的是元字符, 比如\n和\s等,如果要在正则中匹配正常的"\n"而不不是"换行符"就需要对"\"进行转义, " 
"变成‘\\‘.在python中, 无论是正则表达式, 还是待匹配的内容, 都是以字符串的形式出现的, 在字符串中\也有特殊的含义, 本身还需要转义."
所以如果匹配一次"\n", 字符串中要写成‘\\n‘, 那么正则里就要写成"\\\\n",这样就太麻烦了. 这个时候我们就用到了r‘\n‘这个概念, 此时的正则是r‘\\n‘就可以了

 二.re模块

什么时re模块:python里提供的一套关于处理正则表达式的模块,核心更能有四个:

1findall  查找所有,返回list.

技术分享图片

2.search 会进行匹配,但是如果匹配到了第一个结果,就会返回这个结果,如果破配不上search返回的则时None

技术分享图片

3.match  只能从字符串的开头进行匹配

技术分享图片

4.finditer 和findall差不多,只不过这时返回的是个迭代器

技术分享图片

其他操作:

技术分享图片

关于用re模块做爬虫:

技术分享图片

关于两个坑:

finall

技术分享图片

split

技术分享图片

正则和re模块

标签:family   程序   re模块   含义   alt   match   需要   find   匹配   

原文地址:https://www.cnblogs.com/lgw1171435560/p/10193203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!