[整理]python正则表达式

我感觉正则表达式的简单使用并不是很难,但是因为其灵活度太高,所以想完全掌握还是超级有难度,这篇文章我仅把使用方式罗列出来,简单实例在使用方法后列出。

正则表达式 在Python中已经集成为一个re模块

当我们需要使用正则表达式的时候,需要事先导入 import re

# match方法

re.match("正则表达式","字符串"):根据正则表达式,在字符串中从第一个字母开始寻找符合要求的字符串,并将符合要求的字符串返回回来。 

注意:match方法的要求是,从第一个字符开始就要是满足我们要求的字符串,否则将视为失败返回None。

python中的match方法开始时自带 ^(匹配字符串开头),所以match方法使用时要注意

[整理]python正则表达式_第1张图片

match方法返回的是一个对象,如果想要显示匹配到的内容,应该使用group方法或者groups方法

[整理]python正则表达式_第2张图片

groups()和group()的使用是相同的

这两个方法都是属于match对象的


# 单字符匹配方法

[整理]python正则表达式_第3张图片


"."(点号): 用来匹配任意一个字符,但是除了\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码,没有意义)


# 多字符匹配方法

[整理]python正则表达式_第4张图片

* : 星号, 表示匹配前一个字符出现任意次,即0-无限次
+ :加号,代表着至少一次,也就是1-无限次
?: 问号,代表着匹配0次或者一次。 即0-1次
{} : 大括号,里面可以写上自定义次数
      格式有三种 : (1){m}:代表一个或一类字符出现m次
                  (2){m,}:代表一个或一类字符出现至少m次
                  (3){n,m}:代表一个或一类字符出现n-m次


确定边界有四种方法:

^ : 表示规定字符串的开头
$ :  表示规定字符串的结尾,这儿指的字符串,是我们的匹配规则
\b :匹配一个单词的边界,这个怎么理解呢? 
       简单来说,他不匹配任何字符,他仅仅只是作用于一个位置。
       匹配的规则是,当某个位置的两端,有一端不是\w所代表的字符,那么这儿就是一个边界。
\B :匹配一个单词的非边界。即,如果某个位置两遍都是\w表示的字符,那么就匹配成功。


匹配分组:

[整理]python正则表达式_第5张图片

 | : 分组前,先讲解这个或规则,他的作用是,只要|两遍的规则,只要满足一个即可
() : 小括号,进行分组,分组后的结果可以在后续规则中使用,或者直接提取显示出来
\num : 可以直接调用分组的结果。 num是代表着分组的序列号。从1开始
(?P) :咱们还可以给分组进行取名字
(?P=name) : 按照分组的名字进行取值。  需要注意的是,P字母为大写


re模块的其他用法:

[整理]python正则表达式_第6张图片


match方法 从头开始匹配

search方法 任意位置查找,只匹配第一个

findall方法查找所有匹配到的内容,并且返回一个列表

sub方法 匹配并且替换  re.sub(规则,替换后的文本内容(可以是一个函数,将匹配到的对象返回给函数当做参数), 被替换文本)

split方法 用匹配到的规则切割内容,并返回一个列表  re.sub(规则,字符串)

[整理]python正则表达式_第7张图片


实例 匹配合法标识符:

[整理]python正则表达式_第8张图片


实例 替换邮箱:

[整理]python正则表达式_第9张图片

你可能感兴趣的:(正则表达式,整理)