本篇文章主要介绍有关正则表达式的使用。说到使用正则表达式,我们首先应该了解什么是正则表达式,简单的说,正则表达式是一个。比如说我们经常使用的邮箱:,…你会发现他们都有一定的规则,而这个规则的描述就涉及到具体的正则表达式语法了,下面我们就来了解一些基础的语法:
1. 最简单的正则表达式
最简单的正则表达式其实就是普通字符串,它可以匹配其自身。
比如:正则表达式 可以匹配字符串 。
上述代码是通过的(正则表达式)模块对正则表达式的一个使用,其中方法的作用就是,它的语法是:
:表示使用的正则表达式
:表示要匹配的字符串
:用来控制正则表达式匹配规则的标志位
方法的作用是:
2. 限制数量的表达式(限定符)
在讲解限定符之前,先讲解一下什么是和
贪婪模式:是尽可能多的匹配。限定符默认都是贪婪模式的。
非贪婪模式:是尽可能少的匹配。
比如我有一个书柜可以放1到100本书,贪婪模式就是放尽可能的接近或等于100本书,而非贪婪模式就是放尽可能的接近或等于1本书。
一、:
作用:匹配前面的子表达式或者。
比如:它会匹配,,或者后面任意数量的
二、:
作用:匹配前面的子表达式或者
比如:它会匹配,,或者后面任意数量的
注意:和的区别就是:中的后面至少有一个,而中的后面可以没有。
三、:
作用1:匹配前面的子表达式或者
比如:可以匹配或者
作用2:指定限定符为非贪婪模式。
比如:匹配字符串会返回
四、:
作用:对前面的子表达式重复次,是一个非负整数。
比如:可以匹配,但是不可以匹配
五、:
作用:对前面的子表达式重复到次,是一个非负整数并且。其中和是可以省略其中一个。比如:
:表示对前面的子表达式至少重复次。
:表示对前面的子表达式至多重复次。
3.定位符号
定位符用来描述字符串或单词的边界。指定在字符串的什么位置开始匹配。
定位符号如下:
一、:
作用1:匹配字符串开始的位置。如果是多行模式,还会与,之的位置匹配。
比如:会匹配,,不会匹配
是设置为多行模式
作用2:在方括号表达式中使用,表示的意思。
比如:表示匹配不是字符。
二、:
作用:匹配字符串结尾的位置。如果是多行模式,还会与,之的位置匹配。
比如:会匹配,。
三、:
作用:匹配单词的开始或结束的位置.
比如:就是匹配单词中以结尾匹配项。是匹配单词中以开始的匹配项
四、:
作用:不是匹配单词开始或结束的位置,和是相反的。
比如:它表示匹配不以开始的单词,所以可以匹配,但是不能匹配
4.一般字符
一、:
作用:匹配除换行符之外的任何单个字符。
比如:可以匹配,,等等
二、:
作用:转义字符,改变后面一个字符原本的字符意思。
比如:原本匹配字符,但是在前面加上之后就变成,用来匹配换行符。
三、:
作用:字符集合。匹配集合中所包含的任意一个字符。其中集合中的元素可以一一列出,也可以写范围。
比如:可以匹配中的。等同于。
注意:如果里面的第一个字符是,那么表示取反的意思。比如:表示匹配不是数字的字符。
四、:
作用:或的意思
比如:表示先匹配表达式如果不成功就匹配表达式。
5.分组
分组不是对数据进行分组,而是对匹配的表达式进行分组。看一下下面的讲解应该会明白一些。
一、:
作用:可以匹配括号中的任何表达式,同时也标志着组的开始和结束。当表达式中有多个括号时,从左向右,第一个左括号为第一组,第二个左括号为第二组,以此类推。
比如:会匹配,其中是第一组,是第二组
注意:的作用是返回所有匹配的子组的元组,比如上面,都匹配上了,而没有匹配上所以返回组为空
二、:
作用:在分组的同时,为组起一个名称,这个组名称必须是有效的Python标识符,并且每个组名称只能在正则表达式中定义一次。
比如:就是为组起了一个名称.
三、:
作用:引用表达式前面组中名称为的组的匹配内容。
比如:匹配的字符可以是,,….
四、:
作用:引用表达式中编号为的组的匹配内容。
比如:匹配的字符串有,,…
6.反向引用
反向引用涉及到组(被圆括号括起来的部分),组在匹配到内容时,会存储到缓冲区,按照存储的先后顺序,分别编号为1,2,3…99,最高到。每个缓冲区的内容可以使用的方式进行访问调用。
7.非获取匹配
非获取匹配:就是组中匹配的内容不进行缓存,不供以后使用
一、:
作用:可以匹配括号中的任何表达式,但是不进行缓存以供后面使用。
比如:表达式会报错,因为前面的组没有进行缓存,调用时会失败。
二、:
作用:起到一个条件约束的功能,约束括号前面的字符串。看做
比如:会匹配中的但是不会匹配中的。换一种说法就是:如果的后面是就匹配成功,否则失败。
三、:
作用:起到一个条件约束的功能,约束括号前面的字符串。看做
比如:会匹配中的但是不会匹配中的。换一种说法就是:如果的后面不是就匹配成功,否则失败。
四、:
作用:起到一个条件约束的功能,约束括号后面的字符串。看做
比如:会匹配中的,但是不会匹配中的ab。换一种说法就是:如果的前面是就匹配成功,否则失败。
五、:
作用:起到一个条件约束的功能,约束括号后面的字符串。看做
比如:会匹配中的但是不会匹配中的。换一种说法就是:如果的前面不是就匹配成功,否则失败。
8.表达式的注释
注释在表达式中起到解释说明的作用。
一、:
作用:起到注释作用,括号中的字符在表达式中运行时,不启动用。
比如:只会匹配单个字符,而是解释说明是一个字母,方便阅读。
9.预定义
就是提前设定好一些字符代表什么意思,用来替换一些复杂的字符。
一、和:
代表:一个表示,另一个表示,它俩是对立的。
作用:表示匹配中任意一个数字。表示匹配非数字的字符。
比如:可以匹配,,,…;而表示匹配,,只要后面不是数字就行。
二、和:
代表:一个表示,另一个表示,它俩是对立的。
作用:表示匹配字母、数字、下划线;表示匹配非字母数字下划线。
比如:匹配时会得到,而匹配时只会匹配到
三、和:
代表:一个表示,另一个表示;
作用:表示匹配任何空白字符,包括空格、制表符、换页符等等,而表示匹配任何非空白字符。
比如:可以匹配,而却不能。
四、和:
作用:表示匹配字符串的开头,表示匹配字符串的结尾。
比如:会匹配字符串中,开始的,会匹配字符串中结尾处的。
领取专属 10元无门槛券
私享最新 技术干货