Python正则表达式
在python中使用正则表达式有几个必要的步骤
1、使用import re导入正则模块
2、使用re.compile()函数创建一个Regex的对象
3、向Regex对象的方法(search、match)传入查找的原始字符串,返回一个Match对象
4、调用Match对象的group()方法,获得匹配的字符串
下面看几个实际例子,其中前三个例子展示了search findall mathch的区别
(1)Search()返回匹配到的第一个值
备注1、r'代表原字符串,转义字符不生效
2、compile的第二个参数,re.I代表不区分大小写
第二个参数flags是匹配模式,可以使用按位或’|’表示同时生效,也可以在正则表达式字符串中指定。
Pattern对象是不能直接实例化的,只能通过compile方法得到。匹配模式有:
1).re.I(re.IGNORECASE): 忽略大小写
2).re.M(MULTILINE): 多行模式,改变’^’和’$’的行为
3).re.S(DOTALL): 点任意匹配模式,改变’.’的行为
4).re.L(LOCALE): 使预定字符类 \w \W\b\B \s \S 取决于当前区域设定
5).re.U(UNICODE): 使预定字符类 \w \W\b\B \s \S \d \D 取决于unicode定义的字符属性
6).re.X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释
(2)findall()方法,返回匹配到的所有结果,结果格式为一个字符串列表
(3)match()方法
尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none
*注:match和search一旦匹配成功,就是一个match object对象,而match object对象有以下方法:
group() 返回被 RE 匹配的字符串
start() 返回匹配开始的位置
end() 返回匹配结束的位置
span() 返回一个元组包含匹配 (开始,结束) 的位置
group() 返回re整体匹配的字符串,可以一次输入多个组号,对应组号匹配的字符串。
a. group()返回re整体匹配的字符串,
b. group (n,m) 返回组号为n,m所匹配的字符串,如果组号不存在,则返回indexError异常
c.groups()groups() 方法返回一个包含正则表达式中所有小组字符串的元组,从 1 到所含的小组号,通常groups()不需要参数,返回一个元组,元组中的元就是正则表达式中定义的组