python内置模块--re正则

本文介绍了Python中正则表达式的使用方法,包括各种元字符的功能及应用场景,并通过实例展示了如何利用re模块进行字符串匹配、查找、替换等操作。

正则是用一些特殊含义的符号组合到一起来描述字符或者字符串的方法。python中内置了re模块。

import re
stra='''
a1b2c3c4d5e6f./<>+_-{}[]123456
abcdefg
!@#$%^&*()
'''

#大小w的区别,大写W匹配出字符串以外所有值
a=re.findall("\W",stra)
print(a)
#小写w匹配所有字符串,非符号
b=re.findall("\w",stra)
print(b)

#\s与\S区别
print(re.findall('\s','stra)#匹配出所有字符
print(re.findall('\S',stra) #匹配除字符以外的其他元素

#\n \t都是空,都可以被\s匹配
print(re.findall('\s',stra) 

#\n与\t
print(re.findall(r'\n',stra) 
print(re.findall(r'\t',stra) 

#\d与\D
print(re.findall('\d',stra) #匹配所有数字
print(re.findall('\D',stra) #不匹配任何数字

#\A与\Z
a=re.findall("\As","stra")#匹配字符串开始字符
b=re.findall("a\Z","stra")#匹配字符串末尾字符

#匹配大小写字母的方式
print(re.findall('[A-Z]',stra) #匹配出所有大写字母
print(re.findall('[a-z]',stra)#匹配出所有小写字母

#元字符的匹配使用
[],范围匹配,只能匹配单字符,且会匹配【】内所有的指定字符
.,只匹配一位字符,有且只有一个,可代表任意字符
?,匹配一位字符,可有可无
*,匹配任意字符,可有可无且不仅仅匹配一位
^,匹配行首,如果在[^]则表示为非
()分组匹配,匹配()内的字符,以组为单位

+,匹配一个或多个,有且必须有一位
|,范围匹配时的或操作, print(re.findall('compan(?:y|ies)','Too many companies have gone bankrupt, and the next one is my company')) 结果(['companies', 'company'])

 

贪婪匹配与非贪婪匹配

findall

    :默认为贪婪匹配,就是会匹配字符中所有符合正则条件的结果

当在正则使用?时:例如

                                      :re.findall(a.*?b,aqddddddddda1b)  结果为:aqb

 re模块下的方法:

re.findall("正则",‘itemseq’)#返回的匹配结果放在列表中,

re.search("正则",‘itemseq’)#找到第一个匹配结果就返回,返回的匹配信息是一个对象,调用group方法得到匹配的字符串。

b=re.search("12345",stra)
print(b.group())



re.split('[ab]','abcd') #按照a分割得到‘’和bcd,在对b进行分割

re.sub('a','B','aaabcd')#替换匹配到的字符
re.subn('a','A','aaafff')#会匹配所有符合的值,并会携带匹配个数返回


一些简单的正则联系题

import re

#匹配出df,并给出匹配了多少个
a=re.findall('af',"asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd")
print(a,len(a))

a=re.findall('\d',"aslkdjwjkdj123dife94rew")


 











 

转载于:https://www.cnblogs.com/lzh1118/p/7420034.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值