当前位置:首页 > Python教程 > python技巧

Python正则表达式

            import
             re


            #
             str1 = ‘imook python‘
            
#
             pa = re.compile(r‘imook‘)
            
#
             ma = pa.match(str1)
            
#
            输出匹配到的字符串
            
#
            print(ma.group())
            
#
            输出匹配到的字符串的位置
            
#
            print(ma.span())
            #
             ma = re.match(r‘imook‘,‘imook python‘)
            
#
             print(ma.group())
            
#
             imook
            #
            . 匹配任意字符(除了n)
            
#
            [...] 匹配字符集
            
#
            d/D 匹配数字/非数字
            
#
            s/S 匹配空白/非空白
            
#
            w/W 匹配单词字符【a-zA-Z0-9】/非单词字符
            
#
            * 匹配前一个字符0次或无限次
            
#
            + 匹配前一个字符1次或无限次
            
#
            ? 匹配前一个字符0次或者1次
            
#
            {m}/{m,n} 匹配前一个字符m次或者n次
            
#
            *?/+?/?? 匹配模式变为非贪婪 尽可能少匹配字符
            
#
            ^ 匹配字符串开头
            
#
            $ 匹配字符串结尾
            
#
            A/Z 指定的字符串必须出现在开头/结尾
            
#
            | 匹配左右任意一个表达式
            
#
            (ab) 括号中表达式作为一个分组
            
#
            <number> 引用编号为num的分组匹配到的字符串
            
#
            (?P<name>) 分组去一个别名
            
#
            (?P=name) 引用别名为name的分组匹配字符串
            #
             ma = re.match(r‘[A-z][a-z]*‘,‘Ab1dd‘)
            
#
             print(ma.group())
            
#
             Ab
            #
            匹配划线字母开头的字符串
            
#
             ma = re.match(r‘_[a-zA-Z]+[_W]*‘,‘_dshdg‘)
            
#
             print(ma.group())
            
#
             _dshdg
            #
            匹配0-99的数字
            
#
             ma = re.match(r‘[1-9]?[0-9]‘,‘99‘)
            
#
             print(ma.group())
            
#
             99
            #
            匹配邮箱
            
#
             ma = re.match(r‘[a-zA-Z0-9]{6}@163.com‘,‘abc123@163.com‘)
            
#
             print(ma.group())
            
#
             abc123@163.com
            #
             searh(pattern,string,flags=0) 在一个字符串中查找匹配
            
#
             findall(pattern,string,flags=0) 找到匹配,返回所有匹配部分的列表
            #
            查找字符串中出现的数字
            
#
             str1 = "imooc videomnum = 1000"
            
#
             info = re.search(r‘d+‘,str1)
            
#
             print(info.group())
            
#
             1000
            #
             str2 = ‘c++ = 100, java = 99, python = 80‘
            
#
             info = re.findall(r‘d+‘,str2)
            
#
             print(info)
            
#
             [‘100‘, ‘99‘, ‘80‘]
            #
             sub(pattern,repl,string,count=0,flags=0)
            
#
            将字符串中匹配正则表达式的部分替换为其他值
            #
             str3 = "imooc videomnum = 1000"
            
#
             info = re.sub(r‘d+‘,‘1001‘,str3)
            
#
             print(info)
            
#
             imooc videomnum = 1001
            #
             def addl(match):
            
#
                 val = match.group()
            
#
                 num = int(val)+1
            
#
                 return str(num)
            
#
             str3 = "imooc videomnum = 1000"
            
#
             info = re.sub(r‘d+‘,addl,str3)
            
#
             print(info)
            
#
             imooc videomnum = 1001
            #
            split(pattern,string,maxplit=0,flags=0)
            
#
            根据匹配分割字符串,返回分割字符串组成的列表
            #
             str4 = ‘imooc:C C++ Java Python‘
            
#
             info = re.split(r‘:| ‘,str4)
            
#
             print(info)
            
#
             [‘imooc‘, ‘C‘, ‘C++‘, ‘Java‘, ‘Python‘]
            #
             str4 = ‘imooc:C C++ Java Python,C#‘
            
#
             info = re.split(r‘:| |,‘,str4)
            
#
             print(info)
            
#
             [‘imooc‘, ‘C‘, ‘C++‘, ‘Java‘, ‘Python‘, ‘C#‘]
        

 

原文:https://www.cnblogs.com/yanweichen/p/14163328.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!