1、正则表达式基本概念
1、学习正则表达式
2、学习使用re模块来操作正则表达式
3、正则规则处理字符串有特殊的优势
可以参考《正则指引》这本书
正则表达式其实跟python没什么关系,只是字符串的处理
字符组 : [字符组]
在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示
字符分为很多类,比如数字、字母、标点等等。
假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。
写范围:不要垮范围进行编辑,因安装ASCII的顺序中,范围之间是有其它字符的
^ 和$配对使用
| :从左边匹配开始,
正则分组:()用小括号表示
匹配多个字符:dddddd这样可以匹配6个数字
d* :匹配0次或多次,贪婪的匹配
d+ :匹配一次或者多次
所有量词都要放在正则规则的后面:且量词只约束紧跟着它的规则
?
1、1常规匹配范围举例
正则 |
待匹配字符 |
匹配 结果 |
说明 |
[0123456789] |
8 |
True |
在一个字符组里枚举合法的所有字符,字符组里的任意一个字符 和"待匹配字符"相同都视为可以匹配 |
[0123456789] |
a |
? False |
? 由于字符组中没有"a"字符,所以不能匹配 |
? [0-9] |
? 7 |
? True |
? 也可以用-表示范围,[0-9]就和[0123456789]是一个意思 |
? [a-z] |
? s |
? True |
? 同样的如果要匹配所有的小写字母,直接用[a-z]就可以表示 |
? [A-Z] |
? B |
? True |
? [A-Z]就表示所有的大写字母 |
? [0-9a-fA-F] |
? e |
? True |
? 可以匹配数字,大小写形式的a~f,用来验证十六进制字符 |
1.2 字符
元字符 |
匹配内容 |
. |
匹配除换行符以外的任意字符 |
w |
匹配字母或数字或下划线 |
s |
匹配任意的空白符 |
d |
匹配数字 |
n |
匹配一个换行符 |
t |
匹配一个制表符 |
b |
匹配一个单词的结尾 |
^ |
匹配字符串的开始 |
$ |
匹配字符串的结尾 |
W |
匹配非字母或数字或下划线 |
D |
匹配非数字 |
S |
匹配非空白符 |
a|b |
匹配字符a或字符b |
() |
匹配括号内的表达式,也表示一个组 |
[...] |
匹配字符组中的字符 |
[^...] |
匹配除了字符组中字符的所有字符 |
?1.3量词
量词 |
用法说明 |
* |
重复零次或更多次 |
+ |
重复一次或更多次 |
? |
重复零次或一次 |
{n} |
重复n次 |
{n,} |
重复n次或更多次 |
{n,m} |
重复n到m次 |
