1、表达式
'''
\d 匹配一个数字
\w 匹配一个字母或数字
. 匹配一个任意字符
* 匹配任意个字符(包括0个)
+ 匹配至少一个字符
? 匹配0个或1个字符
{n} 匹配n个字符
{n,m,}匹配n~m个字符
\s 匹配一个空格(包括Tab空白符)
\- 匹配 '-'
\_ 匹配 '_'
[] 表示范围
a|b 匹配a或b
^ 表示行开头
$ 表示行结尾
'''
# \d{3}\s+\d{3,8} 表示3个数字 至少一个空格 3-8个数字
# [0-9a-z\_] 表示一个数字或一个字母或一个下滑线
# ^\d 表示行以数字开头
# \d$ 表示行以数字结尾
2、re模块
# 用r'abc\-1' 表示字符串 abc\-1 无转义
import re
if re.match(r'^\d{1,3}[a-c]{2}','10ab'):
print 'true'
else:
print 'false'
3、切分字符串
import re
s = re.split(r'\s+','a b c')
print s # ['a','b','c']
s = re.split(r'[\s\,\:]+','a : b, c')
print s # ['a','b','c']
4、分组
# 用 ()
m = re.match(r'^(\d{4})-(\d{3,9})$', '0010-12345')
m.group(0) # 0010-12345
m.group(1) # 0010
m.group(2) # 12345
5、贪婪匹配
# 匹配尽可能多的字符串
re.match(r'^(\d+?)(0*)$', '1023000') # ('1023000','')
6、预编译正则表达式
# 正则表达式重复使用很多次,为效率,实行预编译
import re
re_1 = re.compile(r'....')
re_1.match('...')