免费搭建自助网站,渠道合作平台,百度快速优化排名软件,wordpress滑块代码正则表达式详解及re模块中的常用函数
概念、作用和步骤 概念#xff1a; 本身也是一个字符串#xff0c;其中的字符具有特殊含义#xff0c;将来我们可以根据这个字符串【正则表达式】去处理其他的字符串#xff0c;比如可以对其他字符串进行匹配#xff0c;切分#xf…正则表达式详解及re模块中的常用函数
概念、作用和步骤 概念 本身也是一个字符串其中的字符具有特殊含义将来我们可以根据这个字符串【正则表达式】去处理其他的字符串比如可以对其他字符串进行匹配切分查找替换等一系列操作。 作用可以对其他字符串进行匹配切分查找替换等处理操作。 编写的步骤- 需要大量的文本信息——找规律——使用正则语法编写出正则表达式 是一个独立于任何一门语言的技术任何一门语言中都可以使用同一个正则表达式去操作 语法 需要先导入内置函数reimport re 字符串本身就是一个正则表达式[] 表示可选项
代码展示
import re
s1 今天是个好天气我的快递1-6712-21343ert_134找不到了手机号码是12345685769邮箱是12345678qq.com和12134.163.com。希望我的三个快递能找到
r1 re.findall(r\d[16],s1)
print(r1,type(r1))运行结果 英文字母范围 [a-z] 表示查找 a-z[A-Za-z][0-9] 注意[]需要用’ 括起才能使用否则报错 [**A-Za-z]不能改变如[A-z]因为使用的是ASCII码会出现非英文部分。 代码展示
s1 今天是个好天气我的快递1-6712-21343ert_134找不到了手机号码是12345685769邮箱是12345678qq.com和12134.163.com。希望我的三个ABC快递能找到
r1 re.findall(r[f-z],s1)
r2 re.findall(r[A-Za-z],s1)
r3 re.findall(r[3-9],s1)
print(r1)
print(r2)
print(r3)运行结果
\d 数字 **\d**表示出现了0次或者1次\d 表示出现了1次或者n次\d*表示出现了0次或者n次 \d同时需’括起使用
代码展示
s1 今天是个好天气我的快递1-6712-21343ert_134找不到了手机号码是12345685769邮箱是12345678qq.com和12134.163.com。希望我的三个ABC快递能找到
r1 re.findall(r\d,s1)
r4 re.findall(r\d?,s1)
r2 re.findall(r\d,s1)
r3 re.findall(r\d*,s1)
print(r1)
print(r4)
print(r2)
print(r3)运行结果
{}出现次数 {m,n} 表示出现的次数范围m表示至少出现的次数n表述最多出现的次数{m,} 表示出现的次数至少为m个上不封顶{m} 表示出现了m次
代码展示
s1 今天是个好天气我的快递1-6712-21343ert_134找不到了手机号码是12345685769微信是微信2342345qq是qq1234邮箱是12345678qq.com和12134.163.com。希望我的三个ABC快递能找到
r1 re.findall(r1\d{1,2},s1)
r2 re.findall(r是\d{,2},s1)
r4 re.findall(r1\d{3,},s1)
r3 re.findall(r\d{2},s1)
print(r1)
print(r2)
print(r4)
print(r3)运行结果
\w 表示英文字母大写或者小写或者下划线或者是中文汉字\W 表示除了大小写英文字母数字汉字下划线之外都能匹配 如果我们没有写re.ASCII参数那么第一个\w会将汉字也匹配上因为\w本身就可以匹配汉字的但是当我们加上了re.ASCII参数python正则表达式匹配的时候\w只会匹配ASCII码上有的字符。 代码展示
s1 今天是个好天气我的快递1-6712-21343ert_134找不到了手机号码是12345685769微信是微信2342345qq是qq1234邮箱是12345678qq.com和12134.163.com。希望我的三个ABC快递能找到
r1 re.findall(r\W,s1)
r2 re.findall(rqq\w,s1)
r3 re.findall(rqq\w,s1,re.ASCII)
print(r1)
print(r2)
print(r3)运行结果 匹配以某个字符串开头 ^ 表示以某个字符串开头 .com在re里可写成\.com 代码展示
s1 今天是个好天气我的快递1-6712-21343ert_134找不到了手机号码是12345685769微信是wx2342345qq是qq1234邮箱是12345678qq.com和12134.163.com。希望我的三个ABC快递能找到
r1 re.findall(rqq\w,s1,re.ASCII)
r2 re.findall(r12\w\\w\.com,s1,re.ASCII)
s2 123ajdhsa2134
s3 ajdhsa$2134$
r3 re.findall(r^aj,s2,re.ASCII)
r4 re.findall(r^aj,s3,re.ASCII)
print(r1)
print(r2)
print(r3)
print(r4)运行结果
() 分组 可以 多个()进行分组结果按()顺序 代码展示 s1 身份证号342300200105198866
r1 re.findall(r(342\d{3}(\d{4})(\d{4})),s1,re.ASCII)
print(r1)
for i in r1:print(i)运行结果
或 | 多个字符之间的或使用小括号
代码展示
s1 身份证号1342300200105198866,另一个身份证号2342200200806116688
r1 re.findall(r(342\d{3}(\d{4})(\d{4})),s1)
r2 re.findall(r(342(300|200)(\d{4})(\d{2})(\d{2})),s1)
print(r1)
print(r2)运行结果
. 表示任意字符 使用\转义字符将.变成普通的点字符进行匹配 代码展示
s1 今天天气正好适合买xiaomipro邮箱是12345678qq.com
r1 re.findall(rxiao.{5},s1)
r2 re.findall(r天气.{5},s1)
r3 re.findall(r12\d\w\.com,s1)print(r1)
print(r2)
print(r3)运行结果
re模块中的常用函数 re.findall 在大字符串中查找符合正则表达式特点的式子re.match() 匹配整个字符串是否符合某个正则表达式特点re.search() 从左向右匹配正则表达式只会匹配一次符合条件, 得到的是一个对象 match和search返回的是对象需要group查看 代码展示
s1 今天天气正好适合买xiaomipro邮箱是12345678qq.com
s2 xiaom
r1 re.findall(rxiao.{5},s1)
r2 re.match(rxiao,s2)
r3 re.match(rxiao,s1)
r4 re.search(rxiao,s2)
print(r1)
print(r2)
print(r2.group())
print(r3)
print(r4)
print(r4.group())运行结果
re.split()切割
代码展示
s1 xiaomi.pro12345
r1 re.split(r[.,],s1)
print(r1)运行结果
re.finditer() 在大字符串中查找符合正则表达式特点的式子,得到的是一个迭代器 代码展示
s1 xiaomi.pro12345
r1 re.finditer(r[(\d)],s1,re.ASCII)
for i in r1:print(i.group())
print(r1)运行结果
fullmatch() 将字符串整体与正则表达式进行匹配
代码展示
text 安徽省-合肥市
res1 re.fullmatch(f(\w)-(\w), text)
print(f省份:{res1.group(1)})
print(f市:{res1.group(2)})运行结果