python正则表达式

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

import re
s = '4211811996xxxxxxxx'
res = re.search('(?P\d{3})(?P\d{3})(?P\d{4})',s)
print(res.groupdict())

res = re.match(r'(\d{3})(\d{3})(\d{4})',s)
print('province:',res.group(1))
print('city:',res.group(2))
print('born_year:',res.group(3))

re.search输出的结果可以作为字典进行下一步使用

正则表达式实例
字符与字符类匹配

实例 描述
python 匹配’python‘
[Pp]ython 匹配 “Python” 或 “python”
rub[ye] 匹配 “ruby” 或 “rube”
[aeiou] 匹配中括号内的任意一个字母
[0-9] 匹配任何数字。类似于 [0123456789]
[a-z] 匹配任何小写字母
[A-Z] 匹配任何大写字母
[a-zA-Z0-9] 匹配任何字母及数字
[^aeiou] 除了aeiou字母以外的所有字符
[^0-9] 匹配除了数字外的字符
[a-zA-Z0-9_] 匹配任意字母数字及下划线

特殊类字符

实例 描述
. 匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用象 ‘[.\n]’ 的模式。
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
\W 匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]’。

你可能感兴趣的:(python,正则表达式)