python正则表达式

来源:互联网 发布:无间道 港片 知乎 编辑:程序博客网 时间:2024/05/17 02:28

         正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。很多编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同。

        它拥有自己独特的语法以及一个独立的处理引擎,在提供了正则表达式的语言里,正则表达式的语法都是一样的。

Python通过re模块提供对正则表达式的支持。 

示例1

#coding=utf-8 

#导入re模块 

import re   

# 将正则表达式编译成Pattern对象,注意hello前面的r的意思是原生字符串 

pattern = re.compile(r'hello')     

# 使用Pattern匹配文本,获得匹配结果,无法匹配时将返回None 

match1 = pattern.match('hello world!') 

match2 = pattern.match('helloo world!') 

match3 = pattern.match('helllo world!')   

#如果match1匹配成功 

if match1:  

    # 使用Match获得分组信息 

    print match1.group() 

else:  

    print'match1匹配失败!'   

#如果match2匹配成功 

if match2:  

    # 使用Match获得分组信息 

    print match2.group() 

else:  

    print'match2匹配失败!'   

#如果match3匹配成功 

if match3:  

    # 使用Match获得分组信息 

    print match3.group() 

else:  

    print'match3匹配失败!' 

输出如下:

hello

hello

match3匹配失败!

SPLIT函数

#coding=utf-8

import re  

   

p = re.compile(r'\d+') 

print p.split('one1two2three3four4') 







re.compile(strPattern[, flag])

这个方法是Pattern类的工厂方法,用于将字符串形式的正则表达式编译为Pattern对象。

第二个参数flag是匹配模式,取值可以使用按位或运算符'|'表示同时生效,比如re.I | re.M

另外,你也可以在regex字符串中指定模式,

比如re.compile('pattern', re.I | re.M)re.compile('(?im)pattern')是等价的。

可选值有:

    re.I(全拼:IGNORECASE):忽略大小写(括号内是完整写法)

    re.M(全拼:MULTILINE):多行模式,改变'^''$'的行为

    re.S(全拼:DOTALL):点任意匹配模式,改变'.'的行为

    re.L(全拼:LOCALE):使预定字符类 \w \W \b \B \s \S 取决于当前区域设定

    re.U(全拼:UNICODE):使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性

    re.X(全拼:VERBOSE):详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。

    re模块还提供了一个方法escape(string),用于将string中的正则表达式元字符如*/+/?等之前加上转义符再返回
















原创粉丝点击