一.定义与作用

1.1 定义

正则表达式(Regular Expression,简称 Regex)是由普通字符 + 特殊元字符组成的一套字符串匹配规则模板,用来描述文本的格式、特征、规律。

1.2 作用

正则就是用简短的符号规则,代替繁琐的字符串循环判断,高效做校验、提取、替换、分割

二.步骤

2.1 模块导入

import re

2.2 正则匹配

result = re.match('正则表达式', '要校验的字符串')

正则匹配常用函数:

函数 说明
re.match() 字符串开头匹配,仅检查字符串开头是否符合规则,匹配成功返回匹配对象,失败返回 None
re.search() 整个字符串查找第一个匹配,遍历整个字符串,找到第一个符合规则的内容就返回,失败返回 None
re.findall() 返回所有匹配结果的列表,查找字符串中所有符合规则的内容,直接返回列表(无匹配返回空列表)。
re.sub() 替换匹配的字符串,等价于字符串的 replace(),但支持规则替换,功能更强。
re.split() 按规则分割字符串,等价于字符串的 split(),支持按正则规则分割

2.3  获取匹配结果

result.group()

三.正则元字符(核心规则)

3.1 单个字符

元字符 功能
. 匹配任意 1 个字符(除了\n
[] 匹配[ ]中列举的字符
[^指定字符] 匹配除了指定字符以外的所有字符
\d 匹配数字,即 0-9,等价于[0-9]
\D 匹配非数字,即不是数字
\s 匹配空白,即 空格,tab 键
\S 匹配非空白
\w 匹配非特殊字符,即 a-z、A-Z、0-9、_、汉字
\W 匹配特殊字符,即非字母、非数字、非_、非汉字

3.2 多个字符

元字符 功能
* 前一个字符出现 0 或多次
+ 前一个字符出现 1 或多次
? 前一个字符出现 0 或 1 次
{m} 前一个字符出现 m 次
{m,n} 前一个字符出现 m 到 n 次

3.3  头尾

元字符 功能
^ 匹配字符串开头
$ 匹配字符串结尾

3.4  分组

元字符 功能
| 或,匹配左边或右边
(...) 分组,捕获匹配的子串
(?:...) 非捕获分组,用于优先级,不保存匹配结果
(?P<分组名>)|(?P=分组名) 设置分组|使用分组
\num 引用第几组的内容

更多推荐