• python正则表达式


    正则表达式通常用来匹配和搜索

    特殊字符:

    .     匹配任意单个字符   除去   

        import re
        myname = "my name is xiaofan!"
        m=re.findall(r'.',myname)
        print(m)

        ['m', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', 'x', 'i', 'a', 'o', 'f', 'a', 'n', '!']

    *    匹配前面子表达式的 0次到多次    (贪婪) 

        import re
        myname = "my name is xiaofan!"
        m=re.findall(r'my*',myname)
        print(m)

        ['my', 'm']

    ?   屁前面的表达式  0次到1次     (贪婪)

        import re
        myname = "xiaoo"
        m=re.findall(r'o?',myname)
        print(m)

        ['', '', '', 'o', 'o', '']

    +    匹配前的表达式 1次到多次      (贪婪)  

        import re
        myname = "xiaoo ao o tt "
        m=re.findall(r'o+',myname)
        print(m)

        ['oo', 'o', 'o']

    ^    开头

    $    结尾   

        import re
        name="xiaofan fanf"
        m=re.findall(r'^x',name)
        m1=re.findall(r'^x.*f$',name)
        m2=re.findall(r'f$',name)
        print(m)
        print(m1)
        print(m2)

      

        ['x']
        ['xiaofan fanf']
        ['f']

    (......)  匹配括号里面的内容可以用 来调用

    w    匹配所有的字母数字下划线

    W    匹配所有的非数字字母下划线

    d    匹配所有的数字

    D    匹配所有的非数字

    s     匹配空白字符

    S    匹配非空白字符

        import re
        name="xiaofan123!@# "
        m=re.findall(r'w',name)
        m1=re.findall(r'W',name)
        m2=re.findall(r'd',name)
        m3=re.findall(r'D',name)
        m4=re.findall(r's',name)
        m5=re.findall(r'S',name)
        print(m)
        print(m1)
        print(m2)
        print(m3)
        print(m4)
        print(m5)

        ['x', 'i', 'a', 'o', 'f', 'a', 'n', '1', '2', '3']
        ['!', '@', '#', ' ']
        ['1', '2', '3']
        ['x', 'i', 'a', 'o', 'f', 'a', 'n', '!', '@', '#', ' ']
        [' ']
        ['x', 'i', 'a', 'o', 'f', 'a', 'n', '1', '2', '3', '!', '@', '#']

    [a-z]       小写字母

    [A-Z]      大写字母

    [a-zA-Z]    大小写字母

        import re

        name="XiaoFan"
        m=re.findall(r'[a-z]',name)
        m1=re.findall(r'[A-Z]',name)
        m2=re.findall(r'[a-zA-Z]',name)
        print(m)
        print(m1)
        print(m2)

        ['i', 'a', 'o', 'a', 'n']
        ['X', 'F']
        ['X', 'i', 'a', 'o', 'F', 'a', 'n']

    |      匹配 | 两边的任意一种字符

    [^]     匹配非括号当中的字符

        import re
        name="XiaooFann"
        m=re.findall(r'a|o',name)
        m1=re.findall(r'[^A-Z]',name)
        print(m)
        print(m1)

        ['a', 'o', 'o', 'a']
        ['i', 'a', 'o', 'o', 'a', 'n', 'n']
        ['o', 'o']

    {m,n}     匹配出现m~n 次的

    {n}         匹配出现n次的

        import re
        name="aaabaaca"
        m=re.findall(r'a{1,2}',name)
        m1=re.findall(r'a{2}',name)
        print(m)
        print(m1)

        ['aa', 'a', 'aa', 'a']
        ['aa', 'aa']

    re.S    修改.的匹配模式,让.可以匹配到

    re.M    修改 的匹配方式

    re.l     忽略大小写

    re.findall       从指定的字符串中匹配所有满足正在描述的问题,返回列表

    re.search      从字符串中匹配一次指定规则

    re.match      从字符串中开头匹配一次指定的规则

    re.compile     形成正则模型

    re.sub           替换,和replace相似

    re.split         分隔,和字符串的split相似

        import re
        test="daadaad"
        t1=re.search(r'a',test)
        t2=re.match(r'a',test)
        print(t1)
        print(t1.group())
        print(t2)

        <_sre.SRE_Match object; span=(1, 2), match='a'>
        a
        None

        tt=re.sub(r'^x','X',"xiaofan")
        print(tt)

        Xiaofan

        t=re.split('-','xiao-fan')
        print(t)

        ['xiao', 'fan']

  • 相关阅读:
    pre 强制换行
    code标签和pre标签的定义
    angularJS绑定数据中对标签转义的处理二 与pre标签的使用
    angularJS绑定数据中对标签转义的处理
    html特殊字符
    js switch的使用 ng-switch的使用方法
    JS转换HTML转义符,防止javascript注入攻击,亲测可用
    MVC,MVP 和 MVVM 的图示 转自阮一峰先生网络日志
    AngularJs ngReadonly、ngSelected、ngDisabled
    你应该知道的jQuery技巧
  • 原文地址:https://www.cnblogs.com/fanxuanhui-linux/p/5902727.html
Copyright © 2020-2023  润新知