正则表达式(4)之内置属性

1、点(.)可以匹配任何一个字符,但是不能匹配换行符等字符。用内置属性: S 可以使.)匹配包括换行在内的所有字符

>>> import re
>>> r=r'owolf.com'
>>> re.findall(r,'owolf.com')
['owolf.com']
>>> re.findall(r,'owolfxcom')
['owolfxcom']
>>> re.findall(r,'owolf\ncom')
[]
>>> re.findall(r,'owolf\ncom',re.S)
['owolf\ncom']
>>> re.findall(r,'owolf\tcom',re.S)
['owolf\tcom']
>>> 

2、属性 I 使匹配对大小写不敏感

>>> owolf=re.compile(r'owolf',re.I)
>>> owolf.findall('OWolf')
['OWolf']
>>> 

3、属性L做本地化识别匹配。语言很多,如果要做一个本地化语言匹配,会加一个L
4、属性M,多行匹配,影响^和$。当用正则去匹配一个多行字符串时,要加属性M,尤其是在读文件的时候,文件一般是多行。

>>> s='''
hello owolf
owolf hello
hello owolf hello
owolf ksjafnbakjl
'''        #定义一个多行字符串
>>> r=r'^owolf'     #定义正则
>>> re.findall(r,s)   #匹配正则
[]        
>>> s
'\nhello owolf\nowolf hello\nhello owolf hello\nowolf ksjafnbakjl\n'       #字符串s的存储形式
>>> re.findall(r,s,re.M)   #字符串有多行操作时,要用属性M
['owolf', 'owolf']
>>> 

5、属性X:当定义的正则为多行时,因为正则存储的时候会把换行符存上,因此用多行正则去匹配字符串,要排除换行符的干扰的话,用属性X

>>> tel='''
\d{3,4}
-?
\d{8}
'''
>>> re.findall(tel,'010-12345678')
[]
>>> tel
'\n\\d{3,4}\n-?\n\\d{8}\n'
>>> re.findall(tel,'010-12345678',re.X)
['010-12345678']
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值