python正则表达式flags参数使用

介绍re.I、re.DEBUG、re.S的使用,多个flags如何使用;正则表达式贪婪模式、非贪婪模式使用实例,re.search()正则表达式传变量。

C:\Users\Administrator.ZHANGHAO-PC>python
Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26) [MSC v.1500 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> re.search('abC','ABC',flags=re.I)
<_sre.SRE_Match object at 0x0000000001E64510>
>>>
>>> re.search('abC','ABC',flags=re.I).group()     ###正则匹配时,不区分大小写
'ABC'
>>> patern=re.compile('abC',re.I)
>>> re.search(patern,'ABC')
<_sre.SRE_Match object at 0x0000000001E64510>
>>>
>>> re.search(patern,'ABC').group()
'ABC'
>>>
>>> re.search('abC','ABC',flags=re.I | re.DEBUG).group()    ###2个参数,使用|分割
literal 97
literal 98
literal 67
'ABC'
>>> str='''
... abc
... def'''
>>>
>>>
>>> str
'\nabc  \ndef'
>>> re.search('abC.*f',str,flags=re.I | re.DEBUG | re.S).group()   ###使用re.S时,.可以匹配任意字符,包括换行
literal 97
literal 98
literal 67
max_repeat 0 4294967295
  any None
literal 102
'abc  \ndef'
>>> str2='''
... abc
... def
... def
... '''
>>> re.search('abC.*f',str2,flags=re.I | re.DEBUG | re.S).group()    ###贪婪模式,最长匹配
literal 97
literal 98
literal 67
max_repeat 0 4294967295
  any None
literal 102
'abc  \ndef\ndef'
>>>
>>> re.search('abC.*?f',str2,flags=re.I | re.DEBUG | re.S).group()   ##非贪婪模式匹配,遇到第1个匹配f的不继续匹配
literal 97
literal 98
literal 67
min_repeat 0 4294967295
  any None
literal 102
'abc  \ndef'

 

>>> name='zte'

>>> re.search('name:%s' %name,'name:zte').group()    ##re.search正则表达式可以传变量
'name:zte'

>>>

你可能感兴趣的:(Python)