python re模块中re.S, re.U, re.I, re.M, re.X

修饰符 描述
re.I 忽略大小写
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B
re.X 为了增加可读性,忽略空格和 # 后面的注释

re.I

忽略待匹配字符串的大小写

In[2]: re.findall("dream", "I HAVE A DREAM")
Out[2]: []
In[3]: re.findall("dream", "I HAVE A DREAM", re.I)
Out[3]: ['DREAM']

re.L

做本地化local识别,python中有个locale模块,locale代表不同的语言,地区和字符集

In[2]: re.L
Out[2]: 

re.M

多行匹配,影响 ^ 和 $

In[2]: text='''10-1
11-2'''
In[3]: re.findall(r'[0-9]$', text, re.M)
Out[3]: ['1', '2']
In[4]: re.findall(r'[0-9]$', text)
Out[4]: ['2']
In[5]: re.findall(r'^[0-9]+', text)
Out[5]: ['10']
In[6]: re.findall(r'^[0-9]+', text, re.M)
Out[6]: ['10', '11']

re.S

将换行符包含进“.”

In[2]: text='''10-1
11-2'''
In[3]: re.findall(r'-[0-9]+.[0-9]+-', text)
Out[3]: []
In[4]: re.findall(r'-[0-9]+.[0-9]+-', text, re.S)
Out[4]: ['-1\n11-']

re.U

根据Unicode字符集解析字符。

re.X

允许在正则表达式中添加注释

In[2]: rc = re.compile(r"""
# 以字母开头
^[a-zA-Z]
# 或者以数字结尾
| 
\d$
""", re.X)
In[3]: rc.findall("hello&&world123")
Out[3]: ['h', '3']

混合使用

多个修饰符可同时叠加使用

In[2]: text='''I HAVE A
DREAM'''
In[3]: re.findall("^dream", text)
Out[3]: []
In[4]: re.findall("^dream", text, re.I)
Out[4]: []
# 忽略大小写,同时开启多行模式
In[5]: re.findall("^dream", text, re.I | re.M)
Out[5]: ['DREAM']

你可能感兴趣的:(python re模块中re.S, re.U, re.I, re.M, re.X)