• python--正则表达式


    一、python的正则

      1.python的正则表达式利用re模块

    import re
    
    # 使用match方法进行匹配操作
    result = re.match(正则表达式,要匹配的字符串)
    
    # 如果上一步匹配到数据的话,可以使用group方法来提取数据
    result.group()

    二、正则规则

      1.字符串

    字符功能
    . 匹配任意1个字符(除了 )
    [ ] 匹配[ ]中列举的字符
    d 匹配数字,即0-9
    D 匹配非数字,即不是数字
    s 匹配空白,即 空格,tab键
    S 匹配非空白
    w 匹配单词字符,即a-z、A-Z、0-9、_
    W 匹配非单词字符

      2.表示数量

    字符功能
    * 匹配前一个字符出现0次或者无限次,即可有可无
    + 匹配前一个字符出现1次或者无限次,即至少有1次
    ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
    {m} 匹配前一个字符出现m次
    {m,} 匹配前一个字符至少出现m次
    {m,n} 匹配前一个字符出现从m到n次

      3.字符串前加r,表示自动转义,在正则表达式中无须在使用进行转义

      4.表示边界

    字符功能
    ^ 匹配字符串开头
    $ 匹配字符串结尾
     匹配一个单词的边界
    B 匹配非单词边界

      5.匹配分组

    字符功能
    | 匹配左右任意一个表达式
    (ab) 将括号中字符作为一个分组
    um 引用分组num匹配到的字符串
    (?P<name>) 分组起别名
    (?P=name) 引用别名为name分组匹配到的字符串
    #分组匹配
    s = "<html><h1>hello world</h1></html>"
    
    res = re.match(r"<(.+)><(.+)>.+</2></1>", s)
    print(res.group())

    #起别名
    s = "<html><h1>hello world</h1></html>"
    re.match(r"<(?P<key1>.+)><(?P=<key2>.+)>.+</(?P=key2)></(?P=key1)>", s)

       6.match,search,findall

        (1) match:从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None,若要完全匹配,pattern要以$结尾。

        (2) search:若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个。

        (3) findall:返回string中所有与pattern相匹配的全部字串,返回形式为数组。

      7.使用sub方法实现批量替换

        re.sub(正则规则,要替换成的字符串或一个函数(返回值相当于字符串),要替换的字符串)

  • 相关阅读:
    晨读,难道只是为了完成任务而读的吗?
    集合还有这么优雅的运算法?
    Java中的TreeSet集合会自动将元素升序排序
    CSS3的几个变形案例……
    “老师,请您多关注一下我吧!!!”
    jsp中使用cookie时报错……
    为什么要有周考?周考是用来干什么的?
    今天,我们就来抽个奖!
    今天 ,给大家变个魔术!!!
    Google Maps Api 多坐标分类标记,在地图上显示海量坐标,并分组显示。
  • 原文地址:https://www.cnblogs.com/peilanluo/p/9038650.html
Copyright © 2020-2023  润新知