【前修知识】
match :匹配 span:范围
match 是从头往后开始匹配,search不按照顺序,直接获取自己想要的,有就显示,没有就None
r 代表反转义,前面也提到过这个知识,如果我们在获取东西的过程中,都不需要反转义的东西,往前就加个r就行,如果是有特殊含义的就给反转义,没有特殊含义的也没事
我们只需要记住,正则表达式:符号+方法
1、为什么用到正则表达式?
帮我们匹配内容,获取里面的信息
如果使用切片,下标什么的太过于麻烦,再加上如果开发者在写的时候打了空格,而你可能不知道空格多少,会发生一些错误,换言之需要一个能准确提取信息的方法
正则表达式的流程是:先匹配再提取
2、正则表达式的基本特征
-----先进行导入正则,分析结果,得到一个match对象,下标范围是(0,3),匹配内容是www
我们用group来获取匹配的内容
接下来,来观察匹配的性质,对于match来说,是从前往后匹配的
这个例子可以看出,无法匹配显示None(可以理解一点None就是一个假的,None没有任何属性),更别说想拿到你本想匹配的taobao
对于search来说,就直接搜索这个匹配内容
3、正则表达式的延伸
3.1、表示字符的
1、从头开始匹配的,且匹配一个字符(.)
2、就是在[ ]里面任取一个进行匹配,而match的方法呢,是从前往后的,获取匹配的结果自然从前往后
---没有
[ ]里面其实是三个都有,任取一个,而方法是从前往后
验证上面
【将两个正则放一块的效果】
放入中括号里面的点,特殊含义已经失效,普通字符点(.)
【a到z任意一个】
如果换用大写的范围,直接放到后面,要明白这个意思,加空格可代表一个字符
【0到9任意一个】
----【改用search方法效果】
任取一个,不就a
3、专门匹配数字,也就是0到9的(专业)(\d)
4、专门匹配非数字(\D)
5、匹配空白,也就是空格(\s)--常用
匹配非空格(\S)
点是默认一个长度,点是不能匹配换行
可以看出,能够获取空白字符串
\t 也能拿到空格
\n 也能拿到空格
【后面是陆续增加方法:】
6、匹配单词(\w)--匹配所有的文字、下划线和数字
特殊字符
汉字
标点符号
数字
下划线
------第二个只能匹配ASCLL码,所以报错
7、中文
默认匹配unicode
匹配中文字符的正则表达式: [\u4e00-\u9fa5]