【正则表达式05】re 模块深入应用

字符串切割

 

  • 代码内容
str1 = 'fqx is a good man'
print(str1.split(' '))
print(re.split(r' +', str1))

 

  • 代码示例图 

 

字符串的替换和修改

 

sub(pattern, repl, string, count=0, flags=0)
subn(pattern, repl, string, count=0, flags=0)

pattern 正则表达式
repl    指定的用来替换的字符串
string  目标字符串
count   最多替换次数
flags   见上

功能:在目标字符串中,以正则表达式的规则匹配字符串,
        再把他们替换成指定的字符串,可以指定替换的次数,如果不指定
        替换所有的匹配字符串
区别:sub 返回一个被替换的字符串,后者返回一个元组,第一个元素是替换的字符串,后边是次数

 

  • 代码内容
str3 = 'fqx is a good man good'

print(re.sub(r'(good)','nice',str3))

print(type(re.sub(r'(good)','nice',str3)))

print(re.subn(r'(good)','nice',str3))

print(type(re.subn(r'(good)','nice',str3)))

 

  • 代码示例图

 

 

 

分组

 

  • 除了简单的判断是否匹配之外,正则表达式还有提取子串的功能,用()表示分组

 

  • 代码内容
str4 = '110-12345678'

# ?P起别名
m = re.match(r'(?P<first>\d{3})-(?P<second>\d{8})',str4)
# group(0) 代表原始字符串
print(m.group(0))

# 第1组
print(m.group(1))
# 第2组
print(m.group(2))

# 查看匹配的各组的情况
print(m.groups())

 

  • 代码示例图

 

 

 

re.finditer 函数

 

原型:finditer(patter,string,flags=0)
patter:匹配的正则表达式
string:要匹配的字符串
flags:标志位,用于控制正则表达式的匹配方式
功能:扫描整个字符串,返回一个迭代器,避免占满内存

 

  • 代码内容
str2 = 'fqx is a good man ! fqx is a nice man ! fqx is a very headsome man!'

d = re.finditer(r'fqx', str2)

while True:
    try:
        # 在循环中,next()方法会在每次循环中调用,该方法返回文件的下一行
        l = next(d)
        print(d)
    except StopAsyncIteration as e:
        break

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值