正则表达式 在Python中已经集成为一个re模块
当我们需要使用正则表达式的时候,需要事先导入 import re
# match方法
re.match("正则表达式","字符串"):根据正则表达式,在字符串中从第一个字母开始寻找符合要求的字符串,并将符合要求的字符串返回回来。
注意:match方法的要求是,从第一个字符开始就要是满足我们要求的字符串,否则将视为失败返回None。
python中的match方法开始时自带 ^(匹配字符串开头),所以match方法使用时要注意
match方法返回的是一个对象,如果想要显示匹配到的内容,应该使用group方法或者groups方法
groups()和group()的使用是相同的
这两个方法都是属于match对象的
# 单字符匹配方法
"."(点号): 用来匹配任意一个字符,但是除了\n
\d :取自数字的英文(digit)首字母d,代表着匹配数字,即0-9
\D : 匹配的是除了数字以外的字符
\s : 即space , 代表着匹配空格或者tab键
\S : 代表着匹配非空格和tab以外的字符
\w : 可以理解为取word的首字母,代表着匹配单词字符,即:0-9,a-z,A-Z,_(下划线)
\W :即匹配除了0-9,a-z,A-Z,_ 以外的字符
[] :代表着匹配中括号内的字符。 咱们可以往中括号内写上各式各样的字符也可以写上范围。
前提是0-9这种有顺序的, a-z A-Z也是。元素之间不需要添加间隔符 (如果是1-z这种,匹配的是ascll码,没有意义)
# 多字符匹配方法
* : 星号, 表示匹配前一个字符出现任意次,即0-无限次
+ :加号,代表着至少一次,也就是1-无限次
?: 问号,代表着匹配0次或者一次。 即0-1次
{} : 大括号,里面可以写上自定义次数
格式有三种 : (1){m}:代表一个或一类字符出现m次
(2){m,}:代表一个或一类字符出现至少m次
(3){n,m}:代表一个或一类字符出现n-m次
确定边界有四种方法:
^ : 表示规定字符串的开头
$ : 表示规定字符串的结尾,这儿指的字符串,是我们的匹配规则
\b :匹配一个单词的边界,这个怎么理解呢?
简单来说,他不匹配任何字符,他仅仅只是作用于一个位置。
匹配的规则是,当某个位置的两端,有一端不是\w所代表的字符,那么这儿就是一个边界。
\B :匹配一个单词的非边界。即,如果某个位置两遍都是\w表示的字符,那么就匹配成功。
匹配分组:
| : 分组前,先讲解这个或规则,他的作用是,只要|两遍的规则,只要满足一个即可
() : 小括号,进行分组,分组后的结果可以在后续规则中使用,或者直接提取显示出来
\num : 可以直接调用分组的结果。 num是代表着分组的序列号。从1开始
(?P) :咱们还可以给分组进行取名字
(?P=name) : 按照分组的名字进行取值。 需要注意的是,P字母为大写
re模块的其他用法:
match方法 从头开始匹配
search方法 任意位置查找,只匹配第一个
findall方法查找所有匹配到的内容,并且返回一个列表
sub方法 匹配并且替换 re.sub(规则,替换后的文本内容(可以是一个函数,将匹配到的对象返回给函数当做参数), 被替换文本)
split方法 用匹配到的规则切割内容,并返回一个列表 re.sub(规则,字符串)
实例 匹配合法标识符:
实例 替换邮箱: