Python 正则表达式(二)

正则表达式替换字符串

语法为:re.sub(pattern, repl, string, count, flags),其中pattern 表示模式字符串,repl表示用来替换的字符串,string表示要替换的原始字符串,count表示替换次数,flags用来控制匹配方式,例如区分大小写等
import re
pattern = r'1[34578]\d{9}'  #定义模式字符串,\d表示匹配数字
s1 = "中奖号码:45678901 联系电话:18001234567"   #匹配字符串
result = re.sub(pattern,"1XXXXXXXXXX",s1)   #替换结果,注意引号
print(result)
中奖号码:45678901 联系电话:1XXXXXXXXXX
#例:替换颜色字符,将颜色字符替换成@__@
import re
pattern1 = r'(黄色)|(绿色)|(红色)|(紫色)'   #定义模式
a1 = "今天我穿了一件套头卫衣,黄色的!我很喜欢这件衣服。"  #原始字符串
result1 = re.sub(pattern1,"@__@",a1)   #替换字符串中的颜色字符
print(result1)  #输出

今天我穿了一件套头卫衣,@__@的!我很喜欢这件衣服。

正则表达式分割字符串

语法为:re.split(pattern, string, [maxsplit], [flags]),其中pattern 表示模式字符串,string表示要分割的原始字符串,maxsplit可选参数表示最大分割次数,flags可选参数表示标志位,用来控制匹配方式,例如区分大小写等

import re
pattern2 = r'[?|&]'    #分割模式
url = "http://www.baidu.com?usename='halun2020'&psd='12345678'"#原始字符串
result2 = re.split(pattern2,url)  #分割
print(result2)
['http://www.baidu.com', "usename='halun2020'", "psd='12345678'"]
#例 输出@好友的名单列表
import re
namelist = "@张三 @李四 @王五     @赵六 @钱七"  #原始字符串,空格不一样
pattern3 = r'\s*@'  #模式,使用空格或单独的@分割字符串 \s表示匹配任意空白符,*表示匹配前面字符0次或多次
result3 = re.split(pattern3,namelist) #分割
print("@的好友名单为:",result3)
@的好友名单为: ['', '张三', '李四', '王五', '赵六', '钱七']
#输出结果第一个为空,为了解决该问题,可以写一个for循环
import re
namelist = "@张三 @李四 @王五     @赵六 @钱七"  #原始字符串,空格不一样
pattern3 = r'\s*@'  #模式,使用空格或单独的@分割字符串 \s表示匹配任意空白符,*表示匹配前面字符0次或多次
result3 = re.split(pattern3,namelist) #分割
print("@的好友名单为:")     #注意print for的搭配使用
for item in result3:
    if item != "":   #如果好友名不为空
        print("好友的名字:",item)
@的好友名单为:
好友的名字: 张三
好友的名字: 李四
好友的名字: 王五
好友的名字: 赵六
好友的名字: 钱七
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈伦2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值