文章目录
正则表达式–随笔
一、什么是正则表达式
正则表达式(regular expression)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
正则表达式有自己独立的操作处理引擎,可以匹配任何的编程语言。
我个人理解,正则表达式本质上是用于对字符串进行筛选的规则。但是如果系统自带的字符串能完成对应操作,尽量使用系统字符串提供的功能,因为它的处理效率比正则表达式要高!
二、使用正则表达式
Python提供的机制是存放再re模块下的。若要使用,则首先需要导入re模块
import re
接下来:
第一步:生成正则对象(指定匹配规则)
第二步:根据需要使用对应的匹配方法(放置待校验的字符串)
注:匹配方法有:match,search,findall,finder,split,sub,subn
match
当匹配规则(正则表达式)中没有设置^开头和\$结尾限制时,match的作用相当于验证待校验的字符串是否以正则表达式对应的字符串内容开头;
当有设置^开头和\$结尾限制时,match的作用为检查待校验的字符串整体内容是否符合正则表达式中的内容。
匹配成功:返回Match对象,
匹配失败:返回None
#案例
import re
#生成正则对象(匹配规则)
re_obj = re.compile("hello")
#match匹配(待校验的字符串)
res = re_obj.match("hello KiKi,nice to meet you")
print(res)
re_obj2 = re.compile("^hello$")
res2 = re_obj2.match("HEllo KiKi,nice to meet you")
print(res2)
re_obj3 = re.compile("hello")
res3 = re_obj3.match("HEllo KiKi,nice to meet you")
print(res3)
执行结果如下:
<_sre.SRE_Match object; span=(0, 5), match='hello'>
None
None
search
在待校验的字符串中查找是否有满足正则表达式的字串;
如果有,返回匹配到的第一个字串对应的Match对象;没有,返回None
#案例
import re
re_obj = re.compile("to")
res = re_obj.search("nice to meet you,nice to meet you too")
print(res)
执行结果如下:
<_sre.SRE_Match object; span=(5, 7), match='to'>
findall
查找所有与规则匹配的对象,将匹配成功的子串存放再列表中然后返回。
import re
s = "i13love14you520"
#匹配所有正整数
re_obj = re.compile("[0-9]+")
res_list = re_obj.findall(s)