Python正则表达式之基础篇(2)

实例 描述
[Pp]ython   匹配 "Python" 或 "python"  
rub[ye]   匹配 "ruby" 或 "rube"  
[aeiou]   匹配中括号内的任意一个字母  
[0-9]   匹配任何数字。类似于 [0123456789]  
[a-z]   匹配任何小写字母  
[A-Z]   匹配任何大写字母  
[a-zA-Z0-9]   匹配任何字母及数字  
[^aeiou]   除了aeiou字母以外的所有字符  
[^0-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_]'。  

1.3re.match函数

  re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

  re.match(pattern, string, flags = 0)

  pattern 正则表达式

  string 匹配的字符串

  flags 标志位,用来控制匹配方式,下文会讲

  直接上程序:

import string,re r = "abc" #正则表达式 if re.match(r,"abc"): #匹配 print 'done' else: print 'defeat'

结果:

  done

可以根据上面各表给出的用法,多练练:

import string,re r = "a.c" #正则表达式 . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。 if re.match(r,"abc"): print re.match(r,"abc") print 'done' else: print 'defeat'

结果:

<_sre.SRE_Match object at 0x01dd6158>

done

  注意这里不是显示匹配成功的字符串,re.match() 返回的是一个对象,不成功返回的是none.

  我们可以通过group(num)或groups()匹配对象函数来获取匹配表达式。 

匹配对象方法 描述
group(num=0)   匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。  
groups()   返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。  

程序:   

import string,re r = "a.c" if re.match(r,"abc"): line = re.match(r,"abc") print line.group() else: print 'defeat'

结果:

  abc

1.3re.search函数

re.search() 扫描整个字符串并返回第一个成功的匹配

  re.search(pattern, string, flags=0)

  pattern 正则表达式

  string 匹配的字符串

  flags 标志位,用于控制匹配方式

  和re.match()一样,匹配成功re.search方法返回一个匹配的对象,否则返回None。

  直接上程序:

import string,re r = "abc" s = 'aacawcabc' if re.search(r,s): line = re.search(r,s) print line.group()

结果:

abc

注意:

re.match()和re.search()的区别:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjpzgg.html