初识:
正则表达式不是Python当中内置的语法和规则,它是一门独立的语言。正则表达式只和字符串相关,在Python中使用正则表达式需要调用re模块;
知识点:
字符组:[字符组]
在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字、字母、标点等等。 假如要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。
例如:
[0123456789]
一个位置只能出现这个字符组当中的一个,比如‘1’,这是正确的。如果是‘123456’,那么这里面是有6个结果
[0-9] '-'表示范围,[0-9]表示这个字符组里枚举合法的所有字符,和[0123456789]作用相同
[a-z] 和数字的原理一样,如果要匹配所有的小写字母,直接用[a-z]就可以表示 [A-Z] 和小写字母原理一样 [A-z] 在asciii码值当中,大写字母排在小写字母前面,并且大写字母后边不是立即跟随小写字母,而是两者之间有几个特殊符号 所有[z-A]为错误表达式 只能从大到小
所有的表达式还可以结合起来 [0-9a-zA-Z] 所有的数字和大小写字母都能够匹配,还可以设置其它范围,例如[5-9g-zA-F]
字符:
常用元字符:
. | 匹配换行符以外的任意字符 |
w | 匹配数字、字母或者下划线 |
s | 匹配任意的空白符空格、回车、Tab |
d | 匹配任意数字 |
匹配制表符:Tab | |
|
匹配换行符 |
匹配一个单词的结尾 | |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结尾 |
a|b | 匹配a或者b |
() | 匹配括号内的表达式,表示一个组 |
[] | 匹配字符组中的字符 |
常用反义词:
W | 匹配非字母、数字和下划线的汉字字符 |
D | 匹配任意非数字字符 |
S | 匹配任意非空白符的字符 |
B | 匹配不是单词开头或结束的位置 |
^x | 匹配除了x以外的任意字符 |
^aeiou | 匹配除了aeiou这几个字母以外的任意字符 |
转义符:
匹配正则表达式的关键字,如: ,,w,s等需要加上转义符‘’,即‘\n’,'\b'……
贪婪匹配:
<.*> | 匹配<>之间的所有字符 |
<.*?> | 匹配第一个<>之间的所有字符 |