python正则表达式知识点总结

正则表达式语法

行定位符

“^”表示行的开始,“$”表示行的结尾

^tm #可以匹配以tm开头的行
tm$ #可以匹配以tm结尾的行
tm #可以匹配含有tm的行

元字符

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

重复

限定符(指定数量的字符),例如,匹配8位QQ号可以用以下表达式:

^\d{8}$

常用的限定符如下表所示:

限定符说明举例
?匹配前面的字符零次或一次colou?r,该表达式可以匹配colour和color
+匹配前面的字符一次或多次go+gle,该表达式可以匹配的范围从gogle到goo…gle
*匹配前面的字符零次或多次go*gle,该表达式可以匹配的范围从ggle到goo…gle
{n}匹配前面的字符n次go{2}gle,该表达式值匹配google
{n,}匹配前面的字符最少n次go{2,}gle,该表达式可以匹配的范围从google到goo…gle
{n,m}匹配前面的字符最少n次,最多m次employe{0,2},该表达式可以匹配enploy、employe和employee 3种情况

字符类

方式:在方括号里列出所要查找的字符

[aeiou] 匹配任何一个英文元音字母
[.?!] 匹配标点符号“.”、“?”或“!”
[0-9] d] 代表一位数字,和\d完全一样
[a-z0-9A-Z] 完全等于\w

排除字符

正则表达式提供了“^”字符放到方括号中,表示排除的意思

[^a-zA-Z] 表示匹配一个不是字母的字符

选择字符

条件选择的逻辑,用选择字符(|)来实现,该字符可以理解为“或”,
(^\d{15}$)|(^\d{17})(\d|X|x)$
表达式的意思是可以匹配15位数字,或者18位数字,或者17位数字和最后一位。最后一位可以是数字或者是X或者是x。

转义字符

转义字符:用法和Python中一样
例如127.0.0.1,如果直接使用1,3点字符,就是:

[1-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}

这显然是不对的,因为在正则中点可以匹配任意一个字符,上面的表达式可能会匹配出比如127101011这样的字符串。所以我们要给点加上转义字符(\)

[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

分组

小括号的两个作用:
1.改变限定字符的作用范围

(thir|four)th
这个表达式的意思是匹配单词thirth或fourth,如果没有小括号,就变成了匹配fourth.

2.分组

(.[0-9]{1,3}){3}

对分组(.[0-9]{1,3})进行重复操作

在Python中使用正则表达式语法

在Python中使用正则表达式时,是将其作为模式字符串使用的。例如,将匹配不是字母的一个字符的正则表达式为模式字符串,可以使用以下代码:

‘[^a-zA-Z]’

而如果将匹配以字母m开头的单词的正则表达式转换为模式字符串,则不能直接在其两侧添加引号定界符,例如,下面的代码是不正确的:

‘\bm\w*\b’

而是需要将其中的“\”进行转义,转义后的代码为:

‘\\bm\\w*\\b’

由于模式字符串中可能包括大量的特殊字符和反斜杠,所以需要写为原生字符串,即在模式字符串前加r或者R。例如,上面的模式字符串采用原生字符串表示就是:

r’\bm\w*\b’

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值