关于正则表达式,主要从以下方面了解:
1 概述:
全称叫 Regular Expression, 正确的, 符合特定规则的 字符串.
简称: re 或者 RegExp
2 作用:
主要用于 数据校验.
3 细节:
1. 关于正则, 只要能用我们讲的规则, 看懂别人写的式子, 且会简单修改即可.
2. 正则不独属于Python, 例如: Java, C#, JavaScript...都支持, 且正则规则都是一样的.
3. 正则大多数的语言, 规则都一样, 不同的是, 校验正则的函数, 不同语言可能不一样.
4 正则校验相关的函数:
正则的使用步骤:
1. 导包
import re
2. 数据校验.
对象名 = re.match()
对象名 = re.search()
对象名t = re.compile().sub()
上述语法糖:
re.sub(正则规则, 新字符串, 旧字符串)
3. 获取数据.
result.group()
5 函数介绍:
match(正则表达式, 要校验的字符串, 扩展功能)
全词匹配.
search(正则表达式, 要校验的字符串, 扩展功能)
分段匹配
compile(正则表达式).sub(用来替换的内容, 要被替换的内容)
它的语法糖写法:
sub(正则表达式, 新字符串, 旧字符串)
6 正则的规则:
(1)和单个字符相关:
. 代表: 任意的1个字符, \n除外
\. 代表: 1个普通的. 即: 取消.的特殊含义
a 代表: 1个字符a
[abc] 代表: a, b, c中任意的1个字符, 即: 要么a, 要么b, 要么c
[^abc] 代表: 除了a,b,c外, 任意的1个字符
\d 代表: 任意的1个整数, 等价于 [0-9]
\D 代表: 任意的1个非整数, 等价于 [^0-9]
\w 代表: 非特殊字符, 即: 大小写英文字符, 数字, _, 汉字, 等价于: [a-zA-Z0-9_其它汉字]
\W 代表: 特殊字符, 即: \w 取反.
\s 代表: 空白字符, 例如: 空格, \t...
\S 代表: 非空白字符, 即: \s取反.
(2)和多个字符相关 => 数量词
? 代表: 前边的内容, 出现0次 或者 1次
* 代表: 前边的内容, 至少出现0次, 至多出现n次(无数次)
+ 代表: 前边的内容, 出现1次 或者 多次.
a{n} 代表: a恰好出现n次, 多一次少一次都不行.
a{n,} 代表: a至少出现n次, 至多无所谓.
a{n,m} 代表: a至少出现n次, 至多出现m次, 包括n 和 m
(3)和开始, 结束相关
^ 代表: 开头
$ 代表: 结尾
(4)和分组相关:
| 代表: 或者的意思.
() 代表: 分组
\num 代表: 获取第num组的内容
(5)扩展:
(?P<分组名>) 设置分组
(?P=分组名) 获取指定分组的内容
细节:
正则默认属于第0组, 之后就按照 左小括号来数, 是第几个, 就是第几组.