惜风不起、唯有努力!
re模块

re模块

1、字符组

正则准备匹配的字符结果说明
[0123456789]6True被匹配必须是匹配规则里有的即为true,如果6变成a则为false
[0-9]5True也可以用‘-’表示范围,[0-9]就和[0123456789]是一个意思
[a-z]dTrue匹配所有的小写字母
[A-Z]ATrue匹配所有的大写字母
[0-9a-zA-Z]1True匹配所有大写,小写,数字
[0-9]hFalse匹配所有数字

2、字符

匹配除换行符以外的任意字符
\w匹配字母或数字或下划线
\s匹配任意的空白符
\d匹配数字
\n匹配一个换行符
\t匹配一个制表符
\b匹配一个单词的结尾
^匹配字符串的开始
$匹配字符串的结尾
\W匹配非字母或数字或下划线
\D匹配非数字
\S匹配非空白符
a|b匹配字符a或字符b
()匹配括号内的表达式,也表示一个组
[…]匹配字符组中的字符
[^…]匹配除了字符组中字符的所有字符

3、量词

量词说明
*重复零次或更多次
+重复一次或更多次
重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

4、贪婪匹配

#常用的非贪婪匹配Pattern

*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复


#.*?的用法

. 是任意字符
* 是取 0 至 无限长度
? 是非贪婪模式。
何在一起就是 取尽量少的任意字符,一般不会这么单独写,他大多用在:
.*?x
就是取前面任意长度的字符,直到一个x出现

5、python中使用

import re

strs = ['abac199ABC+l-']
prog = re.compile('\d{2}') # 匹配2个数字
v = prog.search(strs[0]).group()
print(v)

发表回复

您的电子邮箱地址不会被公开。