您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页Python中sub()的用法说明

Python中sub()的用法说明

来源:华佗小知识
Python中sub()的⽤法说明

Python来进⾏查询和替换⼀个⽂本字符串?

可以使⽤sub()⽅法来进⾏查询和替换,sub⽅法的格式为:

sub(replacement, string[, count=0])

replacement是被替换成的⽂本string是需要被替换的⽂本

count是⼀个可选参数,指最⼤被替换的数量

例⼦:

import re

p = re.compile('(blue|white|red)')

print(p.sub('colour','blue socks and red shoes'))

print(p.sub('colour','blue socks and red shoes', count=1))

输出:

colour socks and colour shoescolour socks and red shoes

subn()⽅法执⾏的效果跟sub()⼀样,不过它会返回⼀个⼆维数组,包括替换后的新的字符串和总共替换的数量

例如:

import re

p = re.compile('(blue|white|red)')

print(p.subn('colour','blue socks and red shoes'))

print(p.subn('colour','blue socks and red shoes', count=1))

输出

('colour socks and colour shoes', 2)('colour socks and red shoes', 1)

补充:Python中正则表达式sub函数⽤法总结

正则表达式⼀个⽐较常见的⽤途是找到所有模式匹配的字符串并⽤不同的字符串来替换它们。sub⽅法提供⼀个替换值,可以是字符串或函数,和⼀个要被处理的字符串。

1、这⾥的sub⽅法,是被编译成‘RegexObject'实例后的实例的⽅法

Sub(replacement,string[,count =0 ])

1)返回的字符串是在字符串中⽤RE最左边不重复的匹配来替换。如果模式没有被发现,字符将没有被改变的返回。2)可选参数count是模式匹配后替换的最⼤次数;count必须是⾮负整数。缺省值是0表⽰替换所有的匹配。

例⼦:

2、模块级函数:sub⽅法

注:这些函数(包括sub函数)使⽤RE字符串作为第⼀个参数,⽽后⾯的参数与相应的“RegexObject”⽅法的参数相同,返回要么是None,要么是⼀个‘MatchObject'实例。

(实际sub返回的是字符串,,两者说法不⼀致,以实际为准)

Re.sub的作⽤在于:使⽤给定的替换内容将匹配模式的⼦字符串(最左端并且⾮重叠的⼦字符串)替换掉

3、作为替换的组号

在2的例⼦中,只是把⼀个字符串⽤其他的内容替换掉了。⽤replace这个字符串⽅法能轻松达到同样的效果。⽽正则表达式允许以更灵活的⽅式进⾏搜索,同时它们也允许进⾏功能更强⼤的替换。

见证re.sub强⼤功能的最简单⽅式就是在替换字符串中使⽤组号。在替换内容中以‘\\\\n'型式出现的任何转义序列都会被模式中与组n匹配的字符串替换掉。

例如,假设要把‘*something*'⽤‘someting'替换掉,前者是在普通⽂本⽂档(⽐如Email)中进⾏强调的常⽤⽅法,⽽后者则是相应的HTML代码(⽤于⽹页)

这⾥把所有的* *含的字符串都替换掉了。刚开始我以为只替换*world*。记⼀笔。

4、作为替换的函数

Re.sub函数可以将⼀个函数作为第⼆个参数(替换式)。函数会被匹配的对象调⽤,并且它的返回值会被插⼊到⽂本中。(但从例⼦2看来,是函数的唯⼀参数是被匹配的对象)

例⼦1:

test.txt内容:

结果:

例⼦2

(该例⼦在《python基础教程》20章)

Sub⽅法不直接调⽤callback,⽽是返回⼀个新的函数,这个函数会被当成re.sub的替换函数来使⽤(这就是采⽤⼀个匹配的对象作为唯⼀参数的原因)

以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务