python 正则表达式(三)字符串处理

本文深入探讨了正则表达式的应用,包括字符串切割、替换、分组与编译等核心功能,通过实例展示了如何处理复杂的字符串匹配与提取任务。
import re
'''
1)切割字符串时,不确定空格的个数,如:"sun today   mood     eath"
'''
str1 = "sun today   mood     eath"
print(re.split(r" +",str1))

'''
2)字符串的替换和修改
def sub(pattern, repl, string, count=0, flags=0)
def subn(pattern, repl, string, count=0, flags=0)
pattern:正则表达式规则,符合的则被替换
repl:用来替换后生成的新字符串
string:目标字符串
count:最多替换次数
功能:在目标字符串中以正则表达式的规则匹配字符串,再把他们替换成指定的字符串。
      可以指定替换的次数,如果不指定,替换所有的匹配字符串
区别:sub返回一个替换后的字符串;subn返回一个元组,第一个元素是替换后的字符串,第二个元素的替换的次数
'''
str2 = "sun sum sss dse fds sub"
print(re.sub(r"su.","beReplace",str2))
print(re.subn(r"su.","beReplace",str2))

'''
3)分组:
概念:除了简单的判断是否匹配之外,正则表达式还有提取字串的功能。
用()表示的就是提取分组
为分组命名:(?P<name>)  查询分组-->group("name")    -->可有可无
'''
#分组-->提取QQ邮箱
str3 = "admin:88888888@qq.com"
str4 = "账号:sun@163.com"
m1 = re.search(r"\w{1,10}@(\w{2,10})\.com",str3)
m2 = re.search(r"\w{1,10}@(\w{2,10})\.com",str4)
'''
这里需要匹配.com,而.本身是正则表达式的一个元字符,可以匹配除换行符以外的任意字符
 使用 \. 将 . 转义字符成普通字符使用
'''
#group(0)是匹配得到的字符串,我这里是要提取邮箱
print(m1.group(0))
print(m2.group(0))

#group(1)是我们使用()设置的分组,我这里把邮箱特征分组,便于后期处理
print(m1.group(1))
print(m2.group(1))

'''
4)编译:将正则表达式编译成一个对象。
1 编译正则表达式,如果正则表达式本身不合法,会报错(检验功能)
2 编译后的正则表达式作为一个对象,可以被重复使用

编译正则表达式的函数:
def compile(pattern, flags=0)
pattern:要编译的正则表达式
'''
re_mailProcess = re.compile(r"\w{1,10}@(\w{2,10})\.com")
m3 = re_mailProcess.search(str3)
print(m3.group(0))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值