day5_ re模块 正则表达式

正则表达式的元字符有. ^ $ * ? { [ ] | ( )
.表示任意字符
[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可以理解成或的关系。
^ 如果放在字符串的开头,则表示取非的意思。[^5]表示除了5之外的其他字符。而如果^不在字符串的开头,则表示它本身。

具有重复功能的元字符:
* 对于前一个字符重复0到无穷次
+对于前一个字符重复1到无穷次
?对于前一个字符重复0到1次
{m,n} 对于前一个字符重复次数在为m到n次,其中,{0,} = *,{1,} =+ , {0,1} = ?
{m} 对于前一个字符重复m次

\d 匹配任何十进制数;它相当于类 [0-9]。
\D 匹配任何非数字字符;它相当于类 [^0-9]。
\s 匹配任何空白字符;它相当于类 [ fv]。
\S 匹配任何非空白字符;它相当于类 [^ fv]。
\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]。

 

 

##############re模块

re模块 常用的  

re.findall

作为一个字符串列表,在字符串中,返回所有非重叠匹配的模式字符串是从左到右扫描的,匹配按照发现的顺序返回。如果一个或多个组是本模式中,返回一个列表的群体 ;如果该模式具有多个组,这将是元组的列表。空匹配包含在结果中,除非他们接触到另一场匹配的开头。

在 1.5.2 版本新。

2.4 版本中的更改:添加可选的标志参数

re.split

字符串拆分的模式的匹配项。如果在模式中使用捕获括号,则然后也作为结果列表的一部分返回的文本模式中的所有组。如果maxsplit不为零,顶多maxsplit分裂发生,并且该字符串的其余部分将作为列表的最后一个元素返回。(不兼容性说明: 在原始的 Python 1.5 版本中, maxsplit被忽略。这已被固定在以后的版本。)

 

re.search

扫描字符串,寻找的第一个由该正则表达式模式产生匹配的位置,并返回相应的MatchObject实例。返回None如果没有字符串中的位置匹配模式 ;请注意这不同于在字符串的某个位置中找到一个长度为零的匹配。

re.match

如果在字符串的开头的零个或更多字符匹配正则表达式模式,将返回相应的MatchObject实例。返回None则该字符串中与模式不匹配;请注意这是不同于零长度匹配。

   请注意,即使在多行模式下, re.match将只匹配字符串的开头,而不是在每个行的开头。

   如果你想要在字符串中的任意位置定位一个匹配,改用search()。

 

 

##############在线正则匹配工具

http://tool.oschina.net/regex/#

 

posted @ 2017-06-01 16:13  昂达达  阅读(206)  评论(2编辑  收藏  举报