5.3.1 认识正则表达式
正则表达式(Regular Expression),此处的“Regular”即是“规则”、“规律”的意思,Regular Expression即“描述某种规则的表达式”,因此它又可称为正规表示式、正规表示法、正规表达式、规则表达式、常规表示法等,在代码中常常被简写为regex、regexp或RE。正则表达式使用某些单个字符串,来描述或匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索或替换那些符合某个模式的文本,如下面的表5.3、5.4、5.5、5.6所示。
5.3.2re模块
在Python中需要通过正则表达式对字符串进行匹配的时候,可以导入⼀个库(模块),名字为re,它提供了对正则表达式操作所需的方法,如表5.7。
5.3.3re.match()方法
re.match()是用来进行正则匹配检查的方法,若字符串匹配正则表达式,则match()方法返回匹配对象(Match Object),否则返回None(注意不是空字符串"")。
匹配对象Macth Object具有group()方法,用来返回字符串的匹配部分。常用格式为:
re.match(pattern,string, flags=0)
这里的pattern格式为('正则表达式', '匹配的字符串')例如:
>>> import re #导入re包
>>> sample_result1 = re.match('Python','Python12') #从头查找匹配字符串
>>> prin()) #输出匹配的字符串
运行结果如下:
Python
5.3.4re.search()方法
re.search()方法和re.match()方法相似,也是用来对正则匹配检查的方法但不同的是search()方法是在字符串的头开始一直到尾进行查找,若正则表达式与字符串匹配成功,那么就返回匹配对象,否则返回None。例如:
>>> import re
>>> sample_result2 = re.search('Python','354Python12') #依次匹配字符串
>>> prin())
运行结果如下:
Python
5.3.4re.search()方法与re.match()方法的区别
虽然re.match()和re.search()方法都是指定的正则表达式与字符串进行匹配,但是 re.match()是从字符串的开始位置进行匹配,若匹配成功,则返回匹配对象,否则返回None。而re.search()方法却是从字符串的全局进行扫描,若匹配成功就返回匹配对象,否则返回None。例如:
>>> import re
>>> sample_result3 = re.match('abc','abcdef1234') #match只能够匹配头
>>> sample_result4 = re.match('1234','abcdef1234')
>>> prin())
>>> print(sample_result4)
5.3.4re.search()方法与re.match()方法的区别
>>> sample_result5 = re.search('abc','abcdef1234') #search匹配全体字符
>>> sample_result6 = re.search('1234','abcdef1234')
>>> prin())
>>> prin())
运行结果如下:
abc
None
abc
1234