Python学习记录之:正则表达式

\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()

你可能感兴趣的:(Python学习记录之:正则表达式)