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

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

1.4re.sub函数

  re.sub()函数用于替换匹配项。

  re.sub(pattern,repl,string,max = 0)

  pattern 正则表达式

  repl 替换 项

  string 匹配的字符串

  count 替换的最大次数 缺省值是0 表示替换所有的匹配

  返回的字符串是在字符串中用 RE 最左边不重复的匹配来替换。如果模式没有发现,字符将被没有改变地返回。

  程序:

import string,re pattern = '\d' repl = "!" s = 'abcdefg' line = re.sub(pattern,repl,s) print line

结果:

!!!!!!!!!abcdefg

1.5正则表达式修饰符 - 可选标志

我们来说说什么是标志位:

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:

修饰符 描述
re.I   使匹配对大小写不敏感  
re.L   做本地化识别(locale-aware)匹配  
re.M   多行匹配,影响 ^ 和 $  
re.S   使 . 匹配包括换行在内的所有字符  
re.U   根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.  
re.X   该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。  

程序: 

import string,re pattern = '[Aa][Bb][Cc][Dd]' s = 'AbCd' if re.match(pattern,s): line = re.match(pattern,s) print line.group()

结果:

AbCd

上面程序可以通过选择标志位来实现:

import string,re pattern = 'abcd' s = 'AbCd' if re.match(pattern,s,re.I): line = re.match(pattern,s,re.I) print line.group()

结果;

AbCd

1.6re.compile函数

  使用re的一般步骤是先使用re.compile()函数,将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。

程序:

import string,re pattern = re.compile('\d+') s = 'aabbccdd' if pattern.match(s): line = pattern.match(s) print line.group()

结果:

11223344

您可能感兴趣的文章:

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

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