python 中re模块学习-正则表达式
re模块中常用的字符含义
. 表示除了换行符之外的任意字符
\转义字符
* 字符重复0--多次
+ 字符重复1-多次
? 字符重复0-1次,如果加在字符串后面还可以表示最小匹配
^行首匹配 或者在一个字符集中表示取反
\B 匹配[^\b]
\b 匹配\w 与\w之间 表示以某个非空白字符开始,以某个非空白字符结束的
[] 字符集{m,n}字符重复m到n次
\d 表示任意10进制数字字符等同[0-9]
\D匹配任意非数字字符 等同[^0-9]
\s匹配任何空白字符 等同于[\t\n\r\f\v]
\S匹配任意非空白字符 等同于[^t\n\r\f\v]
\w匹配任意字母数字字符 等同于[a-zA-Z0-9]
\W匹配任意非字母数字字符 等同于[^a-zA-Z0-9]
例子1:从下面一段文本中,匹配出所有s 开头,e 结尾的单词。
tomatchStr='site sea sue sweet see case sse ssee loses'
rules=r'\bs\S*?\be' #这里?表示非贪婪匹配
print re.findall(rule,tomatchStr)
分组 注意分组的表达式,必须放在括号中,从最左一个表达式开始匹配,多个规则用|分割
例2:写一个正则表达式,能匹配出多种格式的电话号码,包括
(021)88776543
(0312)88776543
010-55667890
02584453362
0571 66345673
rules=r'\(\d{3,4}\)\d{8}|\d{3,4}[ -]*\d{8}
print re.findall(rule,tomatchStr)