码迷,mamicode.com
首页 > 其他好文 > 详细

re模块和分组

时间:2018-08-07 18:57:10      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:命名   sea   com   findall   切割   分组   正则   语句   时间   

1.   findall     search      match     (查找,匹配)

    findall方法括号内参数 正则,字符串, 返回值是一个列表,匹配不到返回[] 空列表

           如   ===>    ret = re.findall(‘\s+‘,‘kjewhfqho254qfewgf‘)               print(ret)

    search 方法括号内参数 正则,字符串, 匹配到返回值是对象空间,,没有匹配到则返回None,  也经常用到if 语句中,如if ret1:print(ret1.group()) # 返回的对象通过group来获                             取匹配到的第一个结果

           如   ===>    ret1 = re.search(‘\d‘,‘dg;ijwpggg.weqge‘) print(ret1)

    match与search方法相类似,区别在于相当于在正则的开头加了了^ ,用来判断以什么开始的,不建议用

            如   ===>    ret2 = re.match(‘\d+‘,‘afw321653afdwqef‘)              print(ret2.group()) 

2.     sub    subn  (替换)              split   (切割)

    sub方法,括号内 正则,替换的新值,字符串,替换次数(多少不会报错),返回值是字符串类型

    subn 跟sub一样,除了会返回替换后的结果,还会返回替换的次数,是元组类型

            如   ===>   ret3 = re.sub(‘\d+‘,‘H‘,‘53463434dweqf53we1gfw5f‘)       print(ret3) 

     split切割方法括号内 正则,字符串 返回值是个列表,     注意:   处理数据时,如果被切割的也显示出来,那就给正则那里加个括号(),这样就能显示出来

            如     ===>   ret4 = re.split(‘\d+‘,‘wegwerwg2564gfwe3g156‘) print(ret4) 

3        ret5 = re.compile(‘-0\.\d+|-[1-9]+(\.\d+)?‘) # 多次用到这个正则表达式时,那么就用compile 命令节省时间效率

          res = ret5.search(‘fgqgioh521-4551312qgwfgqwfge‘)# 只用传字符串就行

          print(res.group())

     ret0 = re.finditer(‘\d+‘,‘kfhqhegf564646.weg545-we5g4‘) #注意这个命令会帮我们拿到符合正则的字符串的迭代器,节省空间

     for r in ret0:

        print(r.group())

4,   findall   会优先显示分组中的内容,要想取得分组优先,   (?:正则表达式) 正则前面加?:

     split 遇到分组 会保留分组内被切掉的内容

     search 如果search中有分组的话,通过group(n)就能够拿到group中的匹配的内容

5,  分组的命名

     启名字

    (?P<name>正则表达式) 表示给分组起名字

     通过索引使用分组

    (?P=name)表示使用这个分组,这里匹配到的内容应该和分组中的内容完全相同

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 

re模块和分组

标签:命名   sea   com   findall   切割   分组   正则   语句   时间   

原文地址:https://www.cnblogs.com/laogao123/p/9438565.html

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