python3正则表达式替换_python3笔记二十三:正则表达式之其他函数

一:学习内容

re.split函数

re.finditer函数

re.sub函数

group()分组

re.compile函数

二:字符串切割---re.split函数

需要导入包:import re

1.格式:re.split(pattern,string,flags=0)

2.功能:字符串切割

3.参数说明:

pattern:匹配的正则表达式

string:要匹配的字符串

flags:标识位,用于控制正则表达式的匹配方式

4.举例:

str1 = "test is    a good girl"

print(str1.split(" "))

print(re.split(r" +",str1))                      #可以看到一次性将所有空格都分隔掉了

三:re.finditer函数

需要导入包:import re

1.格式:re.finditer(pattern,string,flags=0)

2.功能:与findall类似,扫描整个字符串,返回的是一个迭代器

3.参数说明:

pattern:匹配的正则表达式

string:要匹配的字符串

flags:标识位,用于控制正则表达式的匹配方式

4.举例:

str3 = "test is a good girl!test is a good girl!test is a good girl!"

d = re.finditer(r"(test)",str3)

while True:

try:

l = next(d)

print(l)

except StopIteration as e:

break

四:字符串的替换和修改---re.sub函数和re.subn函数

需要导入包:import re

1.格式:sub(pattern, repl, string, count=0, flags=0)    和    subn(pattern, repl, string, count=0, flags=0)

2.功能:在目标字符串中以正则表达式的规则匹配字符串,可以指定替换的次数,如果不指定,替换所有的匹配字符串

3.参数说明:

pattern:正则表达式(规则)

repl:指定的用来替换的字符串

string:目标字符串

count:最多替换次数

4.sub和subn区别:sub()返回一个被替换的字符串,subn()返回一个元组(第一个元素是被替换的字符串,第二个元素表示被替换的次数)

5.举例:

str5 = "test is a good good good girl"

print(re.sub("(good)","nice",str5))

print(re.sub("(good)","nice",str5,count=2))

print(type(re.sub("(good)","nice",str5)))

print(re.subn("(good)","nice",str5))

print(re.subn("(good)","nice",str5,count=2))

print(type(re.subn("(good)","nice",str5)))

五:分组-group()

需要导入包:import re

1.概念:具有提取子串的功能,用()表示的就是分组

2.举例:

str6 = "010-87237214"

m =re.match(r"(\d{3})-(\d{8})",str6)

#使用序号获取对应组的信息,group(0)一直代表的原始字符串

print(m.group(0))

print(m.group(1))

print(m.group(2))

#查看匹配的各组的情况

print(m.groups())

3.?P 给组起名字

str7 = "010-87237214"

m =re.match(r"(?P\d{3})-(?P\d{8})",str7)

print(m.group(0))

print(m.group(1))

print(m.group("first"))

print(m.group(2))

print(m.group("last"))

#查看匹配的各组的情况

print(m.groups())

六:编译-compile()

需要导入包:import re

1.概念:当我们使用正则表达式时,re模块会干两件事:1、编译正则表达式,如果正则表达式本身不合法,会报错;2、用编译后的正则表达式去匹配

2.格式:re.compile(pattern,flags=0)

3.参数说明:

pattern:匹配的正则表达式

flags:标识位,用于控制正则表达式的匹配方式,它的值有:

re.I  忽略大小写

re.L  做本地化识别

re.M  多行匹配,影响^和$

re.S  使.匹配包括换行符在内的所有字符

re.U  根据Unicode字符集解析字符,影响\w \W \b \B

re.X  使我们以更灵活的格式理解正则表达式

4.举例:

pat = r"1[3456789]\d{9}"

re_tele = re.compile(pat)

str = "手机号码19966662112,fldsafdls18877221999lfalalsfdk13988218921dfsa"

re_tele.findall(str)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值