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)

posted @ 2016-09-29 15:19  自动化前行者  阅读(184)  评论(0编辑  收藏  举报