加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-14 06:04:18 所属栏目:百科 来源:网络整理
导读:1、正则表达式基本概念 1、学习正则表达式 2、学习使用re模块来操作正则表达式 3、正则规则处理字符串有特殊的优势 可以参考《正则指引》这本书 正则表达式其实跟python没什么关系,只是字符串的处理 字符组 : [字符组] 在同一个位置可能出现的各种字符组成

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次

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读