正则表达式是什么,它的作用?
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
字符组
在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示,字符分为很多类,比如数字、字母、标点等等。假如你现在要求一个位置"只能出现一个数字",
那么这个位置上的字符只能是0、1、2...9这个范围。
例子:
正则表达式:[0-9] 它可以判断出在要求位置只能出现0-9的数字;
范围表示法:“-”,遵守ascll码表。(请参考ASCLL码表)

按照习惯写法:[0-9]\[a-z]\[A-Z]
正则
|
待匹配字符
|
匹配 |
说明
|
[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,用来验证十六进制字符
|
在字符组中可以同时并列多个-范围表示法,[0-9a-fA-F]
转义序列来表示一个字符
元字符
在正则表达式中,元字符代表了一套规则,每个元字符所代表了一套规则,下面列了一些较常用的。
元字符 | 匹配内容 |
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\n | 匹配一个换行符 |
\t | 匹配一个制表符 |
\b | 匹配一个单词的结尾 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结尾 |
\W |
匹配非字母或数字或下划线
|
\D |
匹配非数字
|
\S |
匹配非空白符
|
a|b |
匹配字符a或字符b
|
() |
匹配括号内的表达式,也表示一个组
|
[...] |
匹配字符组中的字符
|
[^...] |
匹配除了字符组中字符的所有字符
|



元字符的转义,有时候只想简单的匹配^、$、|、-这些元字符所以才需要转义,也就是在正则表达式中的元这符之前加上反斜线:\元字符
原生字符串:r"string‘ python中取消特殊意义的字符如:\n \t
量词
所有的量词都要使用在正则规则表达多的后面,量词只约束它前的的正则规则
量词
|
用法说明
|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
非贪婪匹配:量词后面写?问号就代表了非贪婪匹配
如[0-9]{1,2}?代表只匹配一个0-9的数字
分组
对多个字符组的量词的约束
原文:https://www.cnblogs.com/csiwei-229958907/p/10629893.html