重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
sub()方法有两个参数,第一个是用来替换的字符串,第二个是目标字符串,将用第一个参数替换第二个参数中的所有匹配项。
十余年的濉溪网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整濉溪建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“濉溪网站设计”,“濉溪网站推广”以来,每个客户项目都认真落实执行。
例1:
在使用分组的情况下,用\1,\2,\3,...来指称各分组。
例2:
这个例子中,Agent (\w)\w*匹配前面第一个单词是Agent而第二个是任意单词的项,第二个单词的第一个字符是其第一个分组(这里只有一个分组)。在替换时,这个字符被保留下来,其余被替换为****。
改成
print re.sub("\w","*",_string3)
另外r作用是取消特殊意思
比如r"\a"则匹配\a的
字符串的匹配查询
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正则表达式妙用感觉怎么样?
脑筋急转弯:有人想喝点牛奶解渴,却一命呜呼了,为什么?
可以利用正则表达式来去除
既然说到了字符串的操作,那么就目前而言是没有别的方法会比正则表达式更加方便的:
正则表达式中代表非字母的写法如下:
[^a-zA-Z]
#code:
#out:
拓展内容
其实除了正则表达式来截取外,python中String也提供了方法来判断字符是否为字母字符:
isalpha()方法 判断当前索引的字符是否为字母返回布尔类型
#code:
#out:
其实上述利用isalpha()的写法还可以简写一点,可以利用python可以把表达式当成参数的写法来:
#code:
表达式返回的为一个字符列表,这里使用join方法把空字符加入到字符列表中组成了一个新的字符串返回。
#out:
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没有正则的效果,但是运行效率更佳。请在实际应用中根据需求来定制使用方法,不要浪费资源。