\d
匹配一个数字
\w
匹配一个字母或数字
.
匹配任意字符
*
表示任意个字符(包括0个)
+
表示至少一个字符
?
表示0个或1个字符
{n}
表示n个字符
{n,m}
表示n-m个字符
[]
表示范围
A|B
可以匹配A或B,所以(P|p)ython
可以匹配'Python'
或者'python'
^
表示行的开头,^\d表示必须以数字开头
$
表示行的结束,\d$表示必须以数字结束
# coding=utf-8
import re
print re.match(r'^\d{3}-\d{3,8}$', '010-12345')
print re.match(r'^\d{3}-\d{3,8}$', '010 12345')
# match()方法判断是否匹配,如果匹配成功,返回一个Match对象,否则返回None
if re.match(r'^\d{3}-\d{3,8}$', '010-12345'):
print 'OK'
else:
print "Failed"
print 'a b c'.split(' ') # 会输出空格
print re.split('\s+', 'a b c') # 不会输出空格
print re.split(r'[\s,]+', 'a,b, c d') # []匹配一组字符
# 使用()对表达式进行分组
m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345')
print m.group(0)
print m.group(1)
print m.group(2)
# 预编译表达式
re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$')
print re_telephone.match('010-12345').groups()
print re_telephone.match('010-8086').groups()