码迷,mamicode.com
首页 > 编程语言 > 详细

Python 正则

时间:2018-12-16 18:13:59      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:第一个   匹配   常用   findall   lag   贪婪   pil   标记   指定   

Match 对象的属性
    .string     待匹配的文本
    .re         匹配是使用的pattern对象(正则表达式)
    .pos        正则表达式搜索文本的开始位置
    .endpos     正则表达式搜索文本的结束位置
    
Match 对象的方法
    .group()    获得匹配后的字符串    
    .start()    匹配字符中的原始字符串的开始位置
    .end()      匹配字符串的原始字符串的结束位置
    .span()     返回(.start(),.end())
    
Re库主要功能函数
    re.search(pattern,string,flags=0)
        在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
            pattern:正则表达式的字符串或者原生字符串表示
            string:待匹配字符串
            flags:正则表达式使用时的控制标记
                re.I    re.IGNORECASE   忽略正则表达式的大小写,[A-Z]能够匹配小写字符
                re.M    re.MULTILINE    正则表达式中的 ^ 操作符能够将给定字符串的每行当作匹配开始
                re.S    re.DOTALL   正则表达式中的 . 操作符能够匹配所以字符,默认匹配除换行外的所有字符
    
    re.match(pattern,string,flags=0)
        从一个字符串的开始位置起匹配正则表达式,返回match对象
    
    re.findall(pattern,string,flags=0)
        搜索字符串,以列表类型返回全部能匹配的子串
    
    re.split(pattern,string,maxsplit=0,flags=0)
        将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
            maxsplit:最大分割数,剩余部分作为最后一个元素输出
                maxsplit=0
                    匹配 一个,后面不匹配了
        匹配的部分去掉,不匹配的输出
    
    re.finditer(pattern,string,flags=0)
        搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象
   
    re.sub(pattern,repl,string,count=0,flags=0)
        在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串
            repl:替换匹配字符串的字符串
            count:匹配的最大替换次数
            使用repl替换string中每一个匹配的子串后返回替换后的字符串。
            当repl是一个字符串时,可以使用\id或\g、\g引用分组,但不能使用编号0。
            当repl是一个方法时,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组)。
            count用于指定最多替换次数,不指定时全部替换。

    re.subn(pattern, repl, string[, count])
        返回 (sub(repl, string[, count]), 替换次数)。

    regex = re.compile(pattern,flags=0)
        将正则表达式的字符串形式编译正正则表达式对象
        
        
最小匹配操作符
    *?      前一个字符2次或无限次扩展
    +?      前一个字符1次或无限次扩展
    ??      前一个字符2次或1次扩展
    {m,n}?      扩展钱一个字符m至n次(含n)
    
正则表达式的常用操作符
    .       表示任何单个字符    
    []      字符集,对单个字符给出去值范围         [abc]表示a,b,c;[a-z]表示a到z单个字符
    [^]     非字符集,对单个字符给出排除范围            [^abc]表示非a或b或c的单个字符
    *       前一个字符0次或无限次扩展           abc^表示ab,abc,abcc,abccc等
    +       前一个字符1次或无限次扩展           abc+表示abc,abcc,abccc等
    ?       前一个字符0次或1次扩展            abc?表示ab,abc
    |       左右表达式人一个            abc|def表示abc,def
    {m}     扩展前一个字符m次           ab{2}c表示abbc
    {m,n}   扩展前一个字符m至n次(含n)         ab{1,2}c表示abc,abbc
         匹配字符串开头         ^abc表示abc且在一个字符串的开头
    $       匹配字符串结尾         abc$表示abc且在一个字符串的结尾
    ()      分组标记,内部只能使用 | 操作符           (abc)表示abc,(abc|def)表示abc,def
    \d      数字,等价于[0-9]     
    \D      非数字,等价于[^0-9]    
    \w      单词字符,等价于[A-Za-z0-9]
    \W      非单词字符,等价于[^A-Za-z0-9]
    \s      匹配任意的空白符(空格,换行,回车,换页,制表),效果[ \f\n\r\t]
    \S     ......
    
    x?        匹配0个或1个x (非贪婪匹配)
    x*        匹配0个或任意多个x(.* 表示匹配0个或任意多个字符(换行符除外)贪婪匹配)
    x+        匹配至少一个x(贪婪匹配)



Python 正则

标签:第一个   匹配   常用   findall   lag   贪婪   pil   标记   指定   

原文地址:https://www.cnblogs.com/mysterious-killer/p/10127225.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!