8、正则表达式-re方法的属性

  • 编译标志-flags

  DOTALL,S:使.匹配包括换行在内的所有字符

  IGNORECASE,I:使匹配对大小写不敏感

  LOCAL,L:本地化识别(local-aware)匹配.法语等

  MULTILINE,M:多行匹配,影响^和$

>>> s = '''
hello python
python hello
hello python hello
python hello py
'''
>>> re.findall(r'^hello',s)           
[]
>>> re.findall(r'^hello',s,re.M)       #当字符串 为多行时,需要加M来让正则匹配\n后面的字符
['hello', 'hello']
>>> s
'\nhello python\npython hello\nhello python hello\npython hello py\n'

  VERBOSE,X:能够使用REs的verbose状态,使之被组织的更加清晰易懂

>>> tel = r'''
\d{3,4}
-?
\d{8}
'''
>>> re.findall(tel,'010-12345678')
[]
>>> re.findall(tel,'010-12345678',re.X)       #当正则表达式为多行时,需要加入X属性来使正则表达式清晰易懂
['010-12345678']
>>> tel
'\n\\d{3,4}\n-?\n\\d{8}\n'

  分组:'('和')',可以把相关的数据化为一个整体,在这个整体中可以做其他操作,比如|(或),findall会优先返回分组中的数据

>>> email = r'\w{3,8}@\w+(\.com|\.cn)'
>>> re.findall(email,'test@hiker.com')
['.com']
posted @ 2020-09-07 17:16  Real丶  阅读(194)  评论(0编辑  收藏  举报