正则表达式
2018-01-05 15:40
204 查看
1. 精确匹配
2. Python的re模块
re.match(pattern, str) 匹配成功返回Match对象,否则返回None
re.compile(pattern),正则表达式的匹配分2个步骤,先编译pattern在匹配,当一个正则表达式要使用多次时,最好先编译
re.split(pattern, str) 返回切分得到的list,能够利用pattern切分具有不定多个的空格等
在pattern中用()分组,m=re.match(r'(\d{3})-(\d{3,8})','012-2345'), groups=m.group()|m.group(0)(返回匹配字符'012-2345'),m.group(1)(返回第一个分组'012'),m.groups()(返回一个包含各个分组的turple
贪婪匹配
\d | 一个数字 |
\w | 一个字母或者数字 |
. | 任意字符 |
* | 任意个字符 |
+ | 至少一个字符 |
? | 0个或者1个字符 |
{n} | n个字符 \w{6} |
{n,m} | n-m个字符 \d{3,8} |
\s | 空格、Tab |
^ | 行首 ^\d(必须以数字开头) |
$ | 行末 \d$(必须以数字结尾) |
[] | 范围 [0-9a-zA-Z\_] |
| | 或者 (P|p) |
\- | -(-是特殊字符,需要转义) |
, | \, |
; | \; |
re.match(pattern, str) 匹配成功返回Match对象,否则返回None
re.compile(pattern),正则表达式的匹配分2个步骤,先编译pattern在匹配,当一个正则表达式要使用多次时,最好先编译
re.split(pattern, str) 返回切分得到的list,能够利用pattern切分具有不定多个的空格等
在pattern中用()分组,m=re.match(r'(\d{3})-(\d{3,8})','012-2345'), groups=m.group()|m.group(0)(返回匹配字符'012-2345'),m.group(1)(返回第一个分组'012'),m.groups()(返回一个包含各个分组的turple
贪婪匹配
re.match(r'^(\d+)(0*)$', '102300').groups() ('102300','') re.match(r'^(\d+?)(0*)$', '102300').groups() ('1023','00')