python正则表达式模块re--split, sub, findall, finditer(3)

re.split(pattern, string)

  • 就是用正则表达式进行分割
  • 我们正常分割字符串,也是用split(),传入分割的参数即可
  • 但分割参数都是固定的,比如空格,或者- ,或者逗号等
  • 而re.split(pattern, string)完全可以传入正则表达式来分割
  • 比如\W+表示所有的非字母数字下划线的字符串作为分隔符,最后留下来的就是字母数字下划线分割后的列表。
  • 如果pattern加上括号,就可以把分隔符也加入到列表中。
import re


print(re.split('\W+', 'runoob, runoob, runoob.'))
print(re.split('(\W+)', ' runoob, runoob, runoob.') )

[‘runoob’, ‘runoob’, ‘runoob’, ‘’]
[’’, ’ ', ‘runoob’, ', ', ‘runoob’, ', ', ‘runoob’, ‘.’, ‘’]

re.sub(pattern, replace, string)

  • 查找然后替换
  • 而且是从string中找到,所有被匹配上的字符串,替换成replace中的内容
  • 最后返回替换后的字符串string,是完整的字符串,而不仅仅是匹配到或者替换后的那部分字符串

例子:更换文件路径名称

./data/test.lis 包含以下路径内容
E:\transcripts\regression\dwgout_chamfer.tf
E:\transcripts\regression\idw_isod.tf
import re

with open("./data/test.lis", "r") as f:
	content = f.read()
	change_content = re.sub(r"q;", "D:\iMark", content)
	print(change_content)

输出如下:

D:\iMark\transcripts\regression\dwgout_chamfer.tf
D:\iMark\transcripts\regression\idw_isod.tf

例子2:
有时我们读取的一些数字中,是包含逗号的,比如有些财报中的数字就是这样的,就可以用re.sub()来替换掉,并转换成浮点数类型。

test_data = "146,306,235,168.92"
new_data = re.sub(",", "", test_data)
print(float(new_data))

146306235168.92

re.findall(pattern, string, flags)

  • 匹配所有
  • 返回所有被匹配到的字符串内容,返回的是一个列表

re.finditer(pattern, string, flags)

  • 匹配所有
  • 返回被匹配到的字符串内容
  • 返回的是一个迭代器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值