r = re.findall()还有第三个参数,叫做匹配模式参数,是可选的。比如忽略大小写,多行模式等,
1.re.I 忽略大小写
2.re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
3.re.M 多行模式
4.re.S 即为 .
并且包括换行符在内的任意字符(.
不包括换行符)
5.re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
6.re.X 为了增加可读性,忽略空格和 # 后面的注释
多个匹配模式可以用
|
连接在一起,
常用1:re.I
忽略大小写
import re
lan = 'PythonC#JavaPHPc#'
r = re.findall('c#',lan,re.I)
print(r)
----------------------------------------------
输出:['C#', 'c#']
把小写的 'C#'和小写的'C#'都匹配出来了
常用2:re.s
对.
号匹配所有的字符,包括换行符
将上面的
lan
字符串中的C#
和c#
后面加上换行符\n
import re
lan = 'PythonC#\nJavaPHPc#\n'
r = re.findall('c#.{1}',lan,re.S)
print(r)
---------------------------------------
输出:['c#\n']
上面只把小写的
c#
给匹配出来了,要怎么把大写的C#
给匹配出来嘞,就有了|
多个模式匹配
import re
lan = 'PythonC#\nJavaPHPc#\n'
r = re.findall('c#.{1}',lan,re.I | re.S)
print(r)
---------------------------------------------
输出:['C#\n', 'c#\n']