python re正则

概述 https://www.cnblogs.com/zjltt/p/6955965.html 元字符 元字符在字符集中不起作用 用于取消元字符
语法 说明 表达式实例 完整匹配的字符串
一般字符 匹配自身 abc abc
. 匹配任意字符( 除外) ab. abc
[...] 字符集(对应位子可以是字符集中的任意字符) a[bcd]e abe ace ade
预定义字符集(可以写在字符集[...]中)      
d 数字:[0-9] adc a1c
D 非数字[^d] aDc abc
s 空白字符:[<空格> fv] asc a c
S 非空白字符:[^s] aSc abc
w 单词字符:[A-Za-z0-9_] awc abc
W 非单词字符:[^w] aWc a c
数量词(用在字符或(...)之后)      
* 匹配前一个字符0次或无限次 abc* ab abccc
+ 匹配前一个字符1次或无限次 abc+ abc abccc
匹配前一个字符0次或1次 abc? ab abc
{m} 匹配前一个字符m次 ab{2}c abbc
{m,n} 匹配前一个字符m至n次 ab{1,2}c abc abbc
*? +? ?? {m,n}? 使* + {m,n}变成非贪婪模式    
边界匹配      
^ 匹配字符串开头 在多行模式中匹配每一行开头 ^abc abc
$ 匹配字符串末尾 多行模式中每一行末尾 $abc abc
逻辑和分组      
| 左右任意匹配一个 abc|def abc def
(...) 分组 (abc){2} a(123|456)c abcabc a123c a456c
(?P<name>...) 分组,原有编号指定别名 (?P<id>abc){2} abcabc
(?p=name) 引用别名为<name>分组的字符串 (?P<id>d)abc(?P=id) 1abc1
 

正则匹配模式表

标志

含义

re.S(DOTALL)

使.匹配包括换行在内的所有字符

re.I(IGNORECASE)

使匹配对大小写不敏感

re.L(LOCALE)

做本地化识别(locale-aware)匹配,法语等

re.M(MULTILINE)

多行匹配,影响^和$

re.X(VERBOSE)

该标志通过给予更灵活的格式以便将正则表达式写得更易于理解

re.U

根据Unicode字符集解析字符,这个标志影响w,W,,B

 

 

 

 

执行匹配
方法/属性 作用
match() 字符串开始位置匹配,成功返回MatchObject,失败返回None
search() 扫描字符串,找到RE匹配的位置,成功返回MatchObject,失败返回None
findall() 找到RE匹配的所有子串,作为一个列表返回
finditer() 找到RE匹配的所有子串,作为一个迭代器返回    
    MatchObject实例方法  
方法/属性 作用
group() 返回被RE匹配的字符串
start() 返回匹配开始的位置
end() 返回匹配结束的位置
span() 返回一个元祖包含匹配(开始,结束)的位置  
  match函数 语法 re.match(pattern,string,flags=0) 参数说明  
参数 描述
patten 正则表达式
string 被搜索匹配的字符串,字符串开始
flags 正则表达式修饰符
re.match匹配成功返回matchOject,失败返回None,通过group(num)或groups()获取匹配对象 匹配对象的方法  
匹配对象的方法 描述
 group(num=0)
返回整个匹配(指定分组)
groups() 以元祖形式返回匹配子组
例子 import re line = "Dogs are smart than caters" matchObject = re.match(r'(.*) are .* than (.*)',line,re.M|re.I) if matchObject:     print "matchObject group()",matchObject.group()     print "matchObject group(1)",matchObject.group(1)     print "matchObject group(2)",matchObject.group(2) else:     print "No match" 当执行上面的代码,它产生以下结果: matchObject group() Dogs are smart than caters matchObject group(1) Dogs matchObject group(2) caters   search函数 语法 re.search(pattern,string,flags=0) 参数说明
参数 描述
patten 正则表达式
string 被搜索匹配的字符串,字符串开始
flags 正则表达式修饰符
re.search匹配成功返回searchOject,失败返回None,通过group(num)或groups()获取匹配对象 匹配对象的方法
匹配对象的方法 描述
 group(num=0)
返回整个匹配(指定分组)
groups() 以元祖形式返回匹配子组
  例子 import re line = "Dogs are smart than caters" seachObject = re.search(r'(.*) are .* than (.*)',line,re.M|re.I) if seachObject:     print "searcObject.group():",seachObject.group()     print "searcObject.group(1):",seachObject.group(1)     print "searcObject.group(2):",seachObject.group(2) else:     print "No search" 当执行上面的代码,它产生以下结果 searcObject.group(): Dogs are smart than caters searcObject.group(1): Dogs searcObject.group(2): caters
 
 

你可能感兴趣的