Python正则表达式整理
一、正则表达式介绍
在不使用正则表达式的情况下,我们想要实现字符串的匹配就必须要单独的创建一个函数,通过调用函数来实现;为了减少代码的编写,我们不妨将这些函数抽象出来,成为一个规则。
正则表达式概念
1、使用单个字符串来描述匹配一系列符合某个句法规则的字符串
2、是对字符串操作的一种逻辑公式
3、应用场景:处理文本和数据
4、正则表达式过程:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;否则匹配失败。
二、正则表达式re模块
1、导入re模块
import re
2、正则表达式过程
例如:
首先调用re中的compile方法,生成一个Pattern对象,然后调用这个pattern对象的match等方法;
三、正则表达式语法
(一)匹配单个字符
其中,“.”表示可以匹配任意字符,例如re.match(r'{b}','{a}')是无法匹配的,但是re.match(r'{.}','{a}')可以匹配成功;
“[....]”表示匹配中括号中的任意字符,例如:re.match(r'{[abc]}','{a}')是匹配的,但是re.match(r'{[abc]}','{d}')是不能匹配的;
后面的字符分别表示的是:
- “\d”表示匹配数字,“\D”表示匹配非数字;
- “\s”表示的是空白,“\S”表示的是非空白;
- “\w”表示的是单词字符(包括a-z,A-Z,0-9),“\W”表示的是非单词字符;
如果要匹配“[a]”这种中括号里面含有任意字符的情况,那么需要在正则表达式中添加转译符。
ma = re.match(r'\[[\w]\]','[a]')
(二)匹配多个字符
(三)字符串的边界匹配
其中,“\A”表示指定的字符串必须在开头,例如:ma = re.match(r'\Aimooc[\w]*','imoocpython')可以匹配,但是ma = re.match(r'\Aimooc[\w]*','iimoocpython')不能匹配;同理,“\Z”表示指定字符串必须在结尾。
(四)分组匹配
其中,第三种情况多用于匹配xml文件中的标签是否有效;