重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
改成
创新互联主营运河网站建设的网络公司,主营网站建设方案,重庆App定制开发,运河h5微信小程序开发搭建,运河网站营销推广欢迎运河等地区企业咨询
print re.sub("\w","*",_string3)
另外r作用是取消特殊意思
比如r"\a"则匹配\a的
正则表达式一个比较常见的用途是找到所有模式匹配的字符串并用不同的字符串来替换它们。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*’用‘emsometing/em’替换掉,前者是在普通文本文档(比如Email)中进行强调的常用方法,而后者则是相应的HTML代码(用于网页)
这里把所有的* *含的字符串都替换掉了。刚开始我以为只替换*world*。记一笔。
字符串的匹配查询
Python中的re模块中的findall函数可以对指定的字符串进行遍历匹配,如下:
findall(pattern, string, flags=0)
pattern:指定需要匹配的正则表达式。
string:指定待处理的字符串。
flags:指定匹配模式,常用的值可以是re.I、re.M、re.S和re.X。re.I的模式是让正则表达式对大小写不敏感;re.M的模式是让正则表达式可以多行匹配;re.S的模式指明正则符号.可以匹配任意字符,包括换行符 ;re.X模式允许正则表达式可以写得更加详细,如多行表示、忽略空白字符、加入注释等。
字符串的匹配替换
re模块中的sub函数的功能是替换,类似于字符串的replace方法,该函数根据正则表达式把满足匹配的内容替换为repl,如下:
sub(pattern, repl, string, count=0, flags=0)
pattern:同findall函数中的pattern。
repl:指定替换成的新值。
string:同findall函数中的string。
count:用于指定最多替换的次数,默认为全部替换。
flags:同findall函数。
字符串的匹配分割
re模块中的split函数是将字符串按照指定的正则表达式分隔开,类似于字符串的split,如下:
split(pattern, string, maxsplit=0, flags=0)
pattern:同findall函数中的pattern。
maxsplit:用于指定最大分割次数,默认为全部分割。
string:同findall函数中的string。
flags:同findall函数中的flags。
以上就是本次分享的全部内容了,不知大家对我讲述的Python正则表达式妙用感觉怎么样?
脑筋急转弯:有人想喝点牛奶解渴,却一命呜呼了,为什么?
sub出现于re库,用法是re.sub(pattern, repl, string, count=0, flags=0)
实例,re.sub(r'e','a','def',count = 1)
daf
相对于replace来说,该方法功能更强,但是运行效率更低。
replace是自带函数,用法是str.replace(old, new[, max])
实例,'abbc'.replace('b','a',1)
aabc
对比re.sub来说,replace没有正则的效果,但是运行效率更佳。请在实际应用中根据需求来定制使用方法,不要浪费资源。