Python之正则表达式基础语法

本篇文章主要介绍有关正则表达式的使用。说到使用正则表达式,我们首先应该了解什么是正则表达式,简单的说,正则表达式是一个。比如说我们经常使用的邮箱:,…你会发现他们都有一定的规则,而这个规则的描述就涉及到具体的正则表达式语法了,下面我们就来了解一些基础的语法:

1. 最简单的正则表达式

最简单的正则表达式其实就是普通字符串,它可以匹配其自身。

比如:正则表达式 可以匹配字符串 。

上述代码是通过的(正则表达式)模块对正则表达式的一个使用,其中方法的作用就是,它的语法是:

:表示使用的正则表达式

:表示要匹配的字符串

:用来控制正则表达式匹配规则的标志位

方法的作用是:

2. 限制数量的表达式(限定符)

在讲解限定符之前,先讲解一下什么是和

贪婪模式:是尽可能多的匹配。限定符默认都是贪婪模式的。

非贪婪模式:是尽可能少的匹配。

比如我有一个书柜可以放1到100本书,贪婪模式就是放尽可能的接近或等于100本书,而非贪婪模式就是放尽可能的接近或等于1本书。

一、:

作用:匹配前面的子表达式或者。

比如:它会匹配,,或者后面任意数量的

二、:

作用:匹配前面的子表达式或者

比如:它会匹配,,或者后面任意数量的

注意:和的区别就是:中的后面至少有一个,而中的后面可以没有。

三、:

作用1:匹配前面的子表达式或者

比如:可以匹配或者

作用2:指定限定符为非贪婪模式。

比如:匹配字符串会返回

四、:

作用:对前面的子表达式重复次,是一个非负整数。

比如:可以匹配,但是不可以匹配

五、:

作用:对前面的子表达式重复到次,是一个非负整数并且。其中和是可以省略其中一个。比如:

:表示对前面的子表达式至少重复次。

:表示对前面的子表达式至多重复次。

3.定位符号

定位符用来描述字符串或单词的边界。指定在字符串的什么位置开始匹配。

定位符号如下:

一、:

作用1:匹配字符串开始的位置。如果是多行模式,还会与,之的位置匹配。

比如:会匹配,,不会匹配

是设置为多行模式

作用2:在方括号表达式中使用,表示的意思。

比如:表示匹配不是字符。

二、:

作用:匹配字符串结尾的位置。如果是多行模式,还会与,之的位置匹配。

比如:会匹配,。

三、:

作用:匹配单词的开始或结束的位置.

比如:就是匹配单词中以结尾匹配项。是匹配单词中以开始的匹配项

四、:

作用:不是匹配单词开始或结束的位置,和是相反的。

比如:它表示匹配不以开始的单词,所以可以匹配,但是不能匹配

4.一般字符

一、:

作用:匹配除换行符之外的任何单个字符。

比如:可以匹配,,等等

二、:

作用:转义字符,改变后面一个字符原本的字符意思。

比如:原本匹配字符,但是在前面加上之后就变成,用来匹配换行符。

三、:

作用:字符集合。匹配集合中所包含的任意一个字符。其中集合中的元素可以一一列出,也可以写范围。

比如:可以匹配中的。等同于。

注意:如果里面的第一个字符是,那么表示取反的意思。比如:表示匹配不是数字的字符。

四、:

作用:或的意思

比如:表示先匹配表达式如果不成功就匹配表达式。

5.分组

分组不是对数据进行分组,而是对匹配的表达式进行分组。看一下下面的讲解应该会明白一些。

一、:

作用:可以匹配括号中的任何表达式,同时也标志着组的开始和结束。当表达式中有多个括号时,从左向右,第一个左括号为第一组,第二个左括号为第二组,以此类推。

比如:会匹配,其中是第一组,是第二组

注意:的作用是返回所有匹配的子组的元组,比如上面,都匹配上了,而没有匹配上所以返回组为空

二、:

作用:在分组的同时,为组起一个名称,这个组名称必须是有效的Python标识符,并且每个组名称只能在正则表达式中定义一次。

比如:就是为组起了一个名称.

三、:

作用:引用表达式前面组中名称为的组的匹配内容。

比如:匹配的字符可以是,,….

四、:

作用:引用表达式中编号为的组的匹配内容。

比如:匹配的字符串有,,…

6.反向引用

反向引用涉及到组(被圆括号括起来的部分),组在匹配到内容时,会存储到缓冲区,按照存储的先后顺序,分别编号为1,2,3…99,最高到。每个缓冲区的内容可以使用的方式进行访问调用。

7.非获取匹配

非获取匹配:就是组中匹配的内容不进行缓存,不供以后使用

一、:

作用:可以匹配括号中的任何表达式,但是不进行缓存以供后面使用。

比如:表达式会报错,因为前面的组没有进行缓存,调用时会失败。

二、:

作用:起到一个条件约束的功能,约束括号前面的字符串。看做

比如:会匹配中的但是不会匹配中的。换一种说法就是:如果的后面是就匹配成功,否则失败。

三、:

作用:起到一个条件约束的功能,约束括号前面的字符串。看做

比如:会匹配中的但是不会匹配中的。换一种说法就是:如果的后面不是就匹配成功,否则失败。

四、:

作用:起到一个条件约束的功能,约束括号后面的字符串。看做

比如:会匹配中的,但是不会匹配中的ab。换一种说法就是:如果的前面是就匹配成功,否则失败。

五、:

作用:起到一个条件约束的功能,约束括号后面的字符串。看做

比如:会匹配中的但是不会匹配中的。换一种说法就是:如果的前面不是就匹配成功,否则失败。

8.表达式的注释

注释在表达式中起到解释说明的作用。

一、:

作用:起到注释作用,括号中的字符在表达式中运行时,不启动用。

比如:只会匹配单个字符,而是解释说明是一个字母,方便阅读。

9.预定义

就是提前设定好一些字符代表什么意思,用来替换一些复杂的字符。

一、:

代表:一个表示,另一个表示,它俩是对立的。

作用:表示匹配中任意一个数字。表示匹配非数字的字符。

比如:可以匹配,,,…;而表示匹配,,只要后面不是数字就行。

二、:

代表:一个表示,另一个表示,它俩是对立的。

作用:表示匹配字母、数字、下划线;表示匹配非字母数字下划线。

比如:匹配时会得到,而匹配时只会匹配到

三、:

代表:一个表示,另一个表示;

作用:表示匹配任何空白字符,包括空格、制表符、换页符等等,而表示匹配任何非空白字符。

比如:可以匹配,而却不能。

四、:

作用:表示匹配字符串的开头,表示匹配字符串的结尾。

比如:会匹配字符串中,开始的,会匹配字符串中结尾处的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180702G1F7YV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券