Python正则表达式笔记
注:整理自 www.liaoxuefeng.com
##re模块
###导入re模块
1 | import re |
###match()方法
1 | re.match() |
match()方法匹配成功返回一个Match对象,否则返回None。
常见使用方法:
1 | str = 'xxxxx' #待处理字符串 |
###split()方法
用于正则表达式切分字符串。
用法:
1 | re.split(r'RegExp', str) |
返回切分好的list。
###分组与group()方法
在正则表达式中使用()来分组,如果分了组,就可以对Match对象用group()方法来提取组员。
eg:
1 | m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345') |
※此外还有groups()方法,对Match对象使用,返回一个每组按顺序组成的tuple,不包含原字符串。
###预编译和compile()方法
使用预编译可以提高大量使用RegExp时的效率。
eg:
1 | import re |
##匹配语法
###精确匹配
\d
匹配一个数字\w
匹配一个字母或数字.
匹配任意一个字符
###匹配变长字符
作为匹配表达式后缀:
{n}
匹配n个数字{m, n}
匹配m至n个字符*
匹配任意个数字符+
匹配至少一个字符?
匹配0个或1个字符
###进阶
[]
匹配范围
eg:[0-9a-zA-z\_] 匹配一个数字or字母or下划线a|b
匹配a或者b
eg:(p|P)ython 匹配python或者Python^
匹配开头
eg:^\d 匹配以一个数字开头$
匹配结尾
eg:\d$ 匹配以一个数字结尾
※^和$一般成对使用,能更规范地进行匹配。