zoukankan      html  css  js  c++  java
  • python_正则表达式

    正则表达式

    需要导入模块
    import re

    小写w
    匹配字母(包含中文)或数字或下划线

    #例子如下
    import re
    print(re.findall('w','SkyRabbit()66'))
    #输出结果
    ['S', 'k', 'y', 'R', 'a', 'b', 'b', 'i', 't', '6', '6']
    

    大写w
    匹配非字母(包含中文)或数字或下划线

    #例子如下
    import re
    print(re.findall('W','SkyRabbit()66'))
    #输出结果
    ['(', ')']
    

    小写s
    匹配任意的空白符

    #例子如下
    import re
    print(re.findall('s','SkyRabbit() 
    66'))
    #输出结果
    [' ', '
    ']
    

    大写S
    匹配任意非空白符

    #例子如下
    import re
    print(re.findall('S','SkyRabbit() 
    66'))
    #输出结果
    ['S', 'k', 'y', 'R', 'a', 'b', 'b', 'i', 't', '(', ')', '6', '6']
    

    小写d
    匹配数字

    #例子如下
    import re
    print(re.findall('d','SkyRabbit() 
    66'))
    #输出结果
    ['6', '6']
    

    大写d
    p匹配非数字

    #例子如下
    import re
    print(re.findall('D','SkyRabbit() 
    66'))
    #输出结果
    ['S', 'k', 'y', 'R', 'a', 'b', 'b', 'i', 't', '(', ')', ' ', '
    ']
    
    

    大写A
    从字符串开头匹配

    #例子如下
    import re
    print(re.findall('ASky','SkyRabbit() 
    66'))
    #输出结果
    ['Sky']
    

    ^
    匹配字符串的开始

    #例子如下
    import re
    print(re.findall('^Sky','SkyRabbit() 
    66'))
    #输出结果
    ['Sky']
    

    大写Z
    匹配字符串的结束,如果是换行,只匹配到换行前的结果

    #例子如下
    import re
    print(re.findall('666','SkyRabbit 
    666'))
    #输出结果
    ['666']
    

    小写z与$ 索引字符串以外的

    . ? * + {m,n} .* .*?

    重复匹配

    #例子如下
    import re
    
    # . 匹配任意字符,除了换行符(re.DOTALL 这个参数可以匹配
    )。
    # print(re.findall('a.b', 'ab aab a*b a2b a牛b a
    b'))  # ['aab', 'a*b', 'a2b', 'a牛b']
    # print(re.findall('a.b', 'ab aab a*b a2b a牛b a
    b',re.DOTALL))  # ['aab', 'a*b', 'a2b', 'a牛b']
    
    
    # ?匹配0个或者1个由左边字符定义的片段。
    # print(re.findall('a?b', 'ab aab abb aaaab a牛b aba**b'))  # ['ab', 'ab', 'ab', 'b', 'ab', 'b', 'ab', 'b']
    
    
    # * 匹配0个或者多个左边字符表达式。 满足贪婪匹配 @@
    # print(re.findall('a*b', 'ab aab aaab abbb'))  # ['ab', 'aab', 'aaab', 'ab', 'b', 'b']
    # print(re.findall('ab*', 'ab aab aaab abbbbb'))  # ['ab', 'a', 'ab', 'a', 'a', 'ab', 'abbbbb']
    
    
    # + 匹配1个或者多个左边字符表达式。 满足贪婪匹配  @@
    # print(re.findall('a+b', 'ab aab aaab abbb'))  # ['ab', 'aab', 'aaab', 'ab']
    
    
    # {m,n}  匹配m个至n个左边字符表达式。 满足贪婪匹配  @@
    # print(re.findall('a{2,4}b', 'ab aab aaab aaaaabb'))  # ['aab', 'aaab']
    
    
    # .* 贪婪匹配 从头到尾.
    # print(re.findall('a.*b', 'ab aab a*()b'))  # ['ab aab a*()b']
    
    
    # .*? 此时的?不是对左边的字符进行0次或者1次的匹配,
    # 而只是针对.*这种贪婪匹配的模式进行一种限定:告知他要遵从非贪婪匹配 推荐使用!
    # print(re.findall('a.*?b', 'ab a1b a*()b, aaaaaab'))  # ['ab', 'a1b', 'a*()b']
    
    
    # []: 括号中可以放任意一个字符,一个中括号代表一个字符
    # - 在[]中表示范围,如果想要匹配上- 那么这个-符号不能放在中间.
    # ^ 在[]中表示取反的意思.
    # print(re.findall('a.b', 'a1b a3b aeb a*b arb a_b'))  # ['a1b', 'a3b', 'a4b', 'a*b', 'arb', 'a_b']
    # print(re.findall('a[abc]b', 'aab abb acb adb afb a_b'))  # ['aab', 'abb', 'acb']
    # print(re.findall('a[0-9]b', 'a1b a3b aeb a*b arb a_b'))  # ['a1b', 'a3b']
    # print(re.findall('a[a-z]b', 'a1b a3b aeb a*b arb a_b'))  # ['aeb', 'arb']
    # print(re.findall('a[a-zA-Z]b', 'aAb aWb aeb a*b arb a_b'))  # ['aAb', 'aWb', 'aeb', 'arb']
    # print(re.findall('a[0-9][0-9]b', 'a11b a12b a34b a*b arb a_b'))  # ['a11b', 'a12b', 'a34b']
    # print(re.findall('a[*-+]b','a-b a*b a+b a/b a6b'))  # ['a*b', 'a+b']
    # - 在[]中表示范围,如果想要匹配上- 那么这个-符号不能放在中间.
    # print(re.findall('a[-*+]b','a-b a*b a+b a/b a6b'))  # ['a-b', 'a*b', 'a+b']
    # print(re.findall('a[^a-z]b', 'acb adb a3b a*b'))  # ['a3b', 'a*b']
    
  • 相关阅读:
    C程序的存储空间布局
    获取系统数据文件信息
    基于UDP的一对回射客户/服务器程序
    一段经典的 Java 风格程序 ( 类,包 )
    Vue 脱坑记
    vue面试题总汇
    JavaScript调试技巧
    伪元素小技巧
    JavaScript 开发人员需要知道的简写技巧
    select2插件改造之设置自定义选项 源码
  • 原文地址:https://www.cnblogs.com/SkyRabbit/p/11234398.html
Copyright © 2011-2022 走看看