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']
>>>