正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简本文来源gao@daima#com搞(%代@#码@网&写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
Python作为一门数据处理语言,经常使用正则匹配段落,比如爬虫爬取数据时。正则表达式是Python内置的模块,不需要额外安装。
今天来给大家分享一份比较全面的Python正则表达式宝典,学会之后,你将掌握正则表达式的各种应用场景。
re模块
re (Regular Expression简写),这个很好记住。
1.导入re模块
在使用正则表达式之前,需要导入re模块。
import re
2.findall()的语法:
导入了re模块之后就可以使用findall()方法了,
re.findall(pattern, string, flags=0)
参数
pattern:必填。正则表达式
string:必填,需要检索的文本, == 确保没乱码 ==
Flags:选填,功能标志位
返回数组
str='a1a2a3' newStr=re.findall('a\d',str ) nullVlue=re.findall('b\d',str) print('newStr匹配个数:',len(newStr)) print('newStr匹配结果',newStr) print('nullVlue匹配个数:',len(nullVlue)) print('nullVlue匹配结果',nullVlue)
显示如下:
newStr匹配个数: 3 newStr匹配结果 ['a1', 'a2', 'a3'] nullVlue匹配个数: 0 nullVlue匹配结果 []
基本语法已经介绍完成了。
正则表达式
1.傻瓜式截取findall
import re text='aaa bbb ccc' rol='aaa (.*) ccc' rul=re.findall(rol ,text) print(rul)
显示如下:
[‘bbb’]
直接复制原来的文本,把想要提取的文本替换成(.*)
表达式解释:
表示 | 意义 |
---|---|
(pattern) |
表示匹配pattern并获取这一匹配。要匹配圆括号字符,请使用”“或“<script type=”math/tex” id=”MathJax-Element-1″>”或”</script>”。 |
. |
匹配除“\n”之外的任何单个字符。要匹配包括”\n”在内的任何字符,请使用像”(.|\n)”的模式。 |
* |
匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及”zoo”。*等价于{0,}。 |
增加替代
import re text = '<li><a href="/2/" rel="external nofollow" rel="external nofollow" rel="external nofollow" >动作片</a></li> <li><a href="/1/" rel="external nofollow" rel="external nofollow" rel="external nofollow" >喜剧片</a></li>' rol = r'<li><a href=".*?" rel="external nofollow" rel="external nofollow" rel="external nofollow" >(.*?)</a></li>' rul = re.findall(rol, text) print(rul)