1,正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
re 模块使 Python 语言拥有全部的正则表达式功能。说到底,就是对字符串的匹配,在匹配的基础上你可以进行其他的一些操作。
首先,我们来看一个例子:
输出结果:
从这里我们可以看到,re.findall是把找到的字符取出来,能匹配多少就显示多少;但一般没有什么实用。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以价位:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
r"HE" 符号表示以什么HE字符开头
re.I 表示不区分大小写
r"lili$" 表示以lili结尾的字符
所谓正则表达式,其实就是字符匹配的规则
常用的匹配符有:
量词:
注意点:以上量词都是贪婪模式,会尽可能多的匹配,如果要改为非贪婪模式,通过在量词后面跟随一个?来实现
常用断言:
前瞻回顾的解释:
例如:我们要查找hello,但是hello后面必须是world,正则表达式可以这样写:"(hello)\s+(?=world)",用来匹配"hellowangxing"和"hello world"只能匹配到后者的hello
条件匹配:
(?(id)yes_exp|no_exp):对应id的子表达式如果匹配到内容,则这里匹配yes_exp,否则匹配no_exp
接着,我们要看re的几个集成的方法:
输出结果:
re.search是匹配到HE,刚好匹配一个,不过这个按组去匹配的,如果正则表达式有多个组,那么把正则放到()里,例如:r’.+(ouyang).?(lens)’ ;最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以价位:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
re.split 是按正则表达式去分词,返回的是一个list对象,\s匹配空字符为分割符
re.match 是较为常用的匹配,一般根据if判断返回结果,来做一些操作
当然,也可以有替换功能的:
输出结果:
re.sub是根据正则表达式去匹配;而re.subn 是根据正则表达式去匹配n次
1)分组匹配
输出结果:
其实,re.search和re.match用法很相似,都能组匹配这里不多讲了!
2)迭代匹配
最重要的,我会讲讲下面的例子,循环匹配的,可是网上很少搜到这类例子
输出结果:
我们可以看到输出的结果是完全一样的;re.finditer 是re.compile的基础做进一步封装的方法;每次迭代返回的是一个sre_match对象,这个对象可以获取匹配的索引,tel.span()就是匹配到字符的索引数值;tel.group就是匹配到的字符了。这个方法很强大,可以再此基础上做一些其他的操作。当然,以后的代码用到,建议直接用re.finditer,尽量少用re.compile,代码简洁一些。
总结:
正则表达式对于所有的开发语言是通过的,所以正则表达式才是最重要的,但不建议去死记硬背。如果真需要匹配某些字符,直接网上搜索就行了,常用的,网上一大堆,而且省去你一大堆测试,确实网上找不到的,你再根据正则表达式的规则去写一个。
python福利教程领取方式:
1、点赞+评论(勾选“同时转发”)
2、关注小编。并私信回复关键字【19】
(一定要私信哦~点击我的头像就能看到私信按钮了)