python语法正则表达式_Python正则表达式语法总结

正则表达式语法

学习正则表达式语法,主要就是学习元字符以及它们在正则表达式上下文中的行为。

元字符包括:普通字符、标准字符、特殊字符、限定字符(又叫量词)、定位字符(也叫边界字符)。下面分别介绍不同元字符的用法。

普通字符

字母[a-zA-Z]、数字[0-9]、下划线[-]、汉字,标点符号:

匹配字母a可以regex=a

匹配字母b可以regex=b

匹配字母a或者b可以regex=a|b,这个正则引入一个特殊字符“|”,专业名称为“或”,你也可以叫它“竖线”, 它表示“或”的意思。

匹配字母a或者b或者c可以regex=a|b|c

匹配字母a或者b或者c或者d可以regex=a|b|c|d

如果匹配所有26个字母,这种写法明显很二了。

这里引入两个特殊字符方括号“[ ]”和中划线“-”,“[ ]”专业名称为“字符集合”,你也可以叫它“方括号”。“-”,表示“范围”,你也可以叫它“到”,regex=[A-Z]匹配从A到Z26个字母中的任意一个。

那么匹配字母a或者b或者c或者d可以regex=[abcd]。匹配数字1到8的任意数字可以regex=[1-8],这样就不会匹配到0与9这2个数字了。

代码示例

import re

s = "axbged"

result = re.findall("[a-d]", s)

print(result)

代码输出结果:['a', 'b', 'd']

标准字符集合

标准字符集合是能够与“多种普通字符”匹配的简单表达式,比如:\d、\w、\s。

匹配数字0到9的任意数字可以regex=[0-9]也可以regex=\d。标准字符集要注意区分大小写,大写是相反的意思。regex=\D,则匹配非数字字符,即不能匹配数字0到9。

常见的标准字符说明

标准字符含义

\d匹配0-9中任意一个数字,等效于[0-9]

\D匹配非数字字符,等效于[^0-9]

\w匹配任意一个字母、数字或下划线,等效于[A-Za-z0-9_]

\W与任何非字母、数字或下划线字符匹配,等效于[^A-Za-z0-9_]

特殊字符

特殊字符在正则表达式中表示特殊的含义,比如:*,+,?,\,等等。

“\”是转义字符,用于匹配特殊字符

匹配反斜杠“\”可以regex=\\,因为“\”是特殊字符,所以需要在它前边再加一个“\”进行转义

匹配星号“*”,可以regex=\*,因为“*”是特殊字符,所以需要在它前边再加一个“\”进行转义

特殊字符含义

\转义字符,将下一个字符标记为一个特殊字符

^匹配字符串开始的位置

$匹配字符串结尾的位置

*零次或多次匹配前面的字符或表达式

+一次或多次匹配前面的字符或子表达式

?零次或一次匹配前面的字符或子表达式

.匹配除"\r\n"之外的任何单个字符

限定字符

限定字符又叫量词,是用于表示匹配的字符数量的。

匹配任意1位数字可以regex=\d

匹配任意2位数字可以regex=\d\d

匹配任意3位数字可以regex=\d\d\d

匹配任意8位数字,再这么写就有点二了。这里引入用于表示数量限定字符“”。“”,n是一个非负整数,匹配确定的n次。

代码示例:

import re

s = "axbged1235"

result = re.findall("\d{3}", s)

print(result)

代码输出结果:['123']

注意:regex=\d\d{3}匹配任意4个数字不是6个,量词只对它前面的字符负责, regex=\d\d{3}匹配的内容如下:

匹配任意8位数字可以regex=\d{8}

匹配任意8位以上的数字可以regex=\d{8,}

匹配任意1到8位以上的数字可以regex=\d{1,8}

定位字符

定位字符也叫字符边界,标记匹配的不是字符而是符合某种条件的位置,所以定位字符是“零宽的”。

常用定位字符:

定位字符含义

^匹配字符串开始的位置,表示开始

$匹配字符串结尾的位置,表示结尾

\b匹配一个单词边界

代码示例:

import re

s = "hello,gggiuhello"

#匹配h开头,o结尾的字符

pattern = "^h.*o$"

result = re.findall(pattern, s)

print(result)

代码输出结果:['hello,gggiuhello']

常见正则表达式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值