python正则小结

注意pattern字符串前要加r    原始字符串

元字符
.                匹配除换行的任意字符
^            匹配开头
$            匹配结尾
表示重复
        星号      匹配0-多次
        +           匹配1到多次 
        ?            匹配0次或1次
        {m,n}            匹配m次至n次       
        后面跟一个?表示非贪婪匹配
[ab]            取一个(一般元字符在其中是普通字符)
        []中的元字符
            -在其中表示至
            ^表示非
            \d类似的
()        表示分组
|        分组内的或
\
    1 后面跟元字符转义
    2 后面跟普通字符实现特殊功能
            \d            [0-9]
            \D            [^0-9]
            \s            任何空白字符 [\t\n\r\f\v]
            \S              任意非空白字符
            \w            [0-9a-zA-Z_]
            \W            [^0-9a-zA-Z_]
            \b            匹配一个单词边界,指单词到空格处
            \B            匹配非单词边界
    3 引用序号对应的字组,相当于把小括号的内容放倒此处

函数
re.findall(pattern, string)            找到之后返回符合组的列表,组开头有?:则返回整个
re.search(pattern, string)                              只找到一个.返回一个match对象 .group()返回字符串        
re.match(pattern, string)                            只在开头匹配,返回一个match对象.group()返回字符串
re.compile(pattern)                    多次使用一个正则时,有必要生成一个对象
re.finditer(pattern, string)                    返回一个可迭代对象,每个元素是match对象
re.sub(pattern, repl, string, count=0)            替换count个,0为所有
re.subn(pattern, repl, string)            功能同上,返回一个元组(替换完的字符串,替换次数)
re.split(pattern, string)
以上函数都有参数,编译标识 flags
re.I            匹配对大小写不敏感
re.S            使.包含换行在内的所有字符

match对象的方法
group()             返回匹配到的字符串
start()               返回匹配到的起始位置
end()                   返回匹配到的结束位置
span()                返回一个元组,(起始偏移,结束偏移)
group(数字)        返回第几个组
posted @ 2017-05-05 15:06  君莫笑hhhhhh  阅读(204)  评论(0编辑  收藏  举报