Python re模块(正则表达式)
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
re 模块使 Python 语言拥有全部的正则表达式功能。
常用正则表达式符号:
‘.’ | 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 |
‘^’ | 匹配字符串的开头 |
‘$’ | 匹配字符串的末尾 |
‘*’ | 匹配0个或多个的表达式 |
‘+’ | 匹配1个或多个的表达式 |
‘?’ | 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式 |
‘{m}’ | 匹配m个前面表达式 |
‘{m,}’ | 精确匹配m个前面表达式,"o{1,}"等价于"o+"、"o{0,}"则等价于"o*"。 |
‘{n, m}’ | 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 |
‘|’ | 匹配|左或|右的字符 |
‘(…)’ | 匹配括号内的表达式,也表示一个组 |
‘\A’ | 匹配字符串开始 |
‘\Z’ | 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。 |
‘\d’ | 匹配任意数字,等价于 [0-9] |
‘\D’ | 匹配任意非数字 |
‘\w’ | 匹配数字字母下划线 |
‘\W’ | 匹配非数字字母下划线 |
‘s’ | 匹配任意空白字符,等价于 [\t\n\r\f]。 |
常用的匹配语法:
re.match | 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None |
re.search | 匹配整个字符串,直到找到一个匹配 |
re.findall | 把所有匹配到的字符放到以列表中的元素返回 |
re.split | 以匹配到的字符当做列表分隔符 |
re.sub | 匹配字符并替换 |
re.match 和 re.search 可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式
m.group(num) 返回第num组括号匹配的字符。而m.group() == m.group(0) == 所有匹配的字符
m.groups() 返回所有括号匹配的字符,以tuple格式。 m.groups() == (m.group(0), m.group(1), ...)