Python合集之Python正则表达式(五)

    1.替换字符串

sub()方法用于实现字符串替换,语法格式如下:

re.sub(pattern,repl,string,count,flags)
参数说明:
pattern:表示模式字符串,由要匹配的正则表达式转换而来。
repl:表示要替换的字符串。
string:表示要被查找替换的原始字符串。
count:可选参数,表示模式匹配后替换的最大次数,默认值为0,表示替换所有的匹配。
flags:可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小写。常用的标志位请参考上两节内容。

例如:隐藏中奖信息的手机号码,代码如下:

import re 
pattern=r'1[34578]\d{9}'
string='中奖号码为:84978981 联系电话:13611111111'
result=re.sub(pattern,'1XXXXXXXXXX',string)
print(result)

执行结果如下:

中奖号码为:84978981 联系电话为:1XXXXXXXXXX
import re
pattern=r'(黑客)|(抓包)|(监听)|(Trojan)'
abount='我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan。\n'
sub=re.sub(pattern,'@_@',abount)
print(sub)
about='我是一名程序员,我喜欢看计算机网络方面的图书,喜欢开发网站。'
sub=re.sub(pattern,'@_@'.about)
print(sub)

执行结果如下:

我是一名程序员,我喜欢看@_@方面的图书,想研究一下@_@。
我是一名程序员,我喜欢看计算机网络方面的图书,喜欢开发网站。

2.使用正则表达式分割字符串。

split()方法用于实现根据正则表达式分割字符串,并以列表形式返回。其作用同字符串对象的split()方法类似,所不同的就是分割字符串由模式字符串指定。

split()方法语法格式如下:

re.split(pattern,string,[maxsplit],[flags])
参数说明:
pattern:表示模式字符串,由要匹配的正则表达式转换而来。
string:表示要匹配的字符串
maxsplit:可选参数,表示最大的拆分次数
flags:可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小写,常用的标志位请参考前两节的内容。

例如:从给定的URL地址中提取出请求地址和各个参数,代码如下:

import re
pattern=r'[?|&]'
url='http://www.mingrisoft.com/login.jsp?username="mr"&pwd="mrsoft"'
result=re.split(pattern,url)
print(result)

执行结果如下:

['http://www.mingrisoft.com/login.jsp', 'username="mr"', 'pwd="mrsoft"']
import re
str1='@明日科技 @扎克伯格 @俞敏洪'
pattern=r'\s*@'
list1=re.split(pattern,str1)
print('您@的好友有:')
for item in list1:
    if item !="":
        print(item)

花絮:

本期的Python 字符串正则表达式就分享到这里,下期我们将继续分享Python函数的相关知识,感兴趣的朋友可以关注我。

同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。

posted @ 2021-03-11 21:21  @睦  阅读(149)  评论(0编辑  收藏  举报