RE模块

re.findall
      得到的是列表,查询出全部结果
re.search 对象的结果是匹配的对象
      匹配上,直接打印**,是一个匹配对象
      没有匹配上,返回none
      想要看结果,借助group()
            有结果返回匹配对象
            没有结果则报错
re.match 只匹配开头
      用法和search相同(想要看结果借助group()方法)
      从开头匹配,无结果返回none
re.split 拆分匹配对象
      例子: obj = re.split("\d","7ad1")
                  print(obj)
                  \d 匹配数字:
                       首尾为数字 表示一个“”,
                       其他内容紧挨的第一个数字省略,往后每一个数字为一个 “”,
      split 优先级:
                  例子:re.split("(\d+)","34ab167abda8a")
                       print结果为 : ['', '34', 'ab', '167', 'abda', '8', 'a']
                          ()代表把省略的元素显示出来
 re.sub 替换匹配对象 旧的 ---> 新的
      ① re.sub("a","杨焱垚","healalo")
            print结果为: he杨焱垚l杨焱垚lo
      ② re.subn("a","杨焱垚","healaloaaa") (n ---> num的缩写)
            print结果为: ('he杨焱垚l杨焱垚lo杨焱垚杨焱垚杨焱垚', 5)
                  结果以元组的形式输出,n代表替换的次数
re.compile  正则表达式 (编译)----> 对象
      下面的对象可以调用方法
      为了防止报错,打印的时候 使用if判断一下输出
re.finditer   返回迭代器
      想要查看具体结果,使用for循环再使用group()方法,打印结果
(\1) 与第一个分组匹配 成对出现
      例子: re.search(r"<(\w+)>(\w+)<(\1)>","<h1>hello<h1>")
            写法一: r"<(\w+)>(\w+)<(\1)>"
            写法二: "<(\w+)(\w+)<(\\1)>"
                  打印结果为:<h1>hello<h1>
      (\1) 表示与第一个分组对应
有名分组: ?P<起的名字>
      取名字
      ?P< > 与 (\1) 所实现的对应效果一样,都必须是成对出现
      例如: re.search(r"(?P<id>\d)abc(?P=id)","8abc8")
            打印结果为: 8abc8
posted @ 2019-12-03 08:50  待会聊  阅读(257)  评论(0)    收藏  举报