• 模块之re等相关内容-23


    re模块

    # 正则表达式:由一系列特殊字符拼接而成的表达式/规则,该表达式用于从一个大字符串中匹配出符合规则的子字符串
    import re
    #1、w 数字 字母 下划线
    # print(re.findall('www',"h ello 123_ (0"))
    # ['ell', '123']

    #2、 W 非 数字 字母 下划线
    # print(re.findall('W',"h ello 123_ (0"))
    # [' ', ' ', ' ', '(']

    #3、s 空白
    # print(re.findall('s',"h e ll o 123_ (0"))
    # [' ', ' ', ' ', ' ', ' ']
    # print(re.findall('ws',"h ello 123_ (0"))
    # ['h ', 'o ', '_ ']

    #4、S 非 空白
    # print(re.findall('S',"h e ll o 123_ (0"))
    # ['h', 'e', 'l', 'l', 'o', '1', '2', '3', '_', '(', '0']
    #5、d 数字
    # print(re.findall('d',"h e ll o 123_ (0"))
    # ['1', '2', '3', '0']

    #6、D 非 数字
    # print(re.findall('D',"h e ll o 123_ (0"))
    # ['h', ' ', 'e', ' ', 'l', 'l', ' ', 'o', ' ', '_', ' ', '(']

    # print(re.findall("adb","a1b a2b a b aab aaaaaaaa1b a2c a22c a 3c"))
    # ['a1b', 'a2b', 'a1b']

    #7、 与
    # msg="""h e ll o 123_ (0
    # 1
    #     2
    # 3
    # """
    # print(re.findall(' ',msg))
    # [' ', ' ', ' ', ' ', ' ', ' '] # 换行符
    # print(re.findall(' ',msg))
    # [' ', ' '] # 制表符
    # print(re.findall(' ',msg))
    # [' ', ' ', ' ', ' ', ' ', ' ', ' '] # 空白符


    #8、^与$
    # print(re.findall("^egon","egon asdf 213123 egonafsadfegon"))
    # ['egon']
    #
    # print(re.findall("egon$","egon asdf 213123 egonafsadfegon "))
    # []
    #
    # print(re.findall("awwwc","ab12c3c a213c"))
    # ['ab12c', 'a213c']
    #
    # print(re.findall("^awwwc$","ab_2c"))
    # ['ab_2c']

    #9、.与[]
    #9.1 .:代表匹配一个字符,该字符可以是任意字符
    # print(re.findall("adb","a1b a2b aab aaaaaaab a+b a-b a c"))
    # ['a1b', 'a2b']
    # print(re.findall("awb","a1b a2b aab aaaaaaab a+b a-b a c"))
    # ['a1b', 'a2b', 'aab', 'aab']
    # print(re.findall("a.b","a1b a2b aab aaaaaaab a+b a-b a b a c"))
    # ['a1b', 'a2b', 'aab', 'aab', 'a+b', 'a-b', 'a b']
    # print(re.findall("a.b","a1b a2b aab aaaaaaab a b a-b a b a c",re.DOTALL))
    # ['a1b', 'a2b', 'aab', 'aab', 'a b', 'a-b', 'a b']


    #9.2 []:代表匹配一个字符,我们可以指定该字符的范围
    # print(re.findall("a[+-]b", "a1b a2b aab aaaaaaab a+b a-b a c"))
    # ['a+b', 'a-b']
    # print(re.findall("a[.*/+-]b", "a.b a2b a*b a/b aab aaaaaaab a+b a-b a c"))
    # ['a.b', 'a*b', 'a/b', 'a+b', 'a-b']
    # print(re.findall("a[a-z]b", "a.b a2b a*b a/b aab aaaaaaab a+b a-b a c")) # -放在[]内的开头或结果
    # ['aab', 'aab']
    # print(re.findall("a[a-zA-Z]b", "a.b a2b a*b a/b aAb aCb aab aaaaaaab a+b a-b a c")) # -放在[]内的开头或结果
    # ['aAb', 'aCb', 'aab', 'aab']
    # print(re.findall("adb", "a.b a2b a*b a/b aAb aCb aab aaaaaaab a+b a-b a c")) # -放在[]内的开头或结果
    # ['a2b']
    # print(re.findall("a[0-9]b", "a.b a2b a*b a/b aAb aCb aab aaaaaaab a+b a-b a c")) # -放在[]内的开头或结果
    # ['a2b']

    # [^...]代表取反
    # print(re.findall("a[^0-9]b", "a.b a2b a*b a/b aAb aCb aab aaaaaaab a+b a-b a c")) # -放在[]内的开头或结果
    # ['a.b', 'a*b', 'a/b', 'aAb', 'aCb', 'aab', 'aab', 'a+b', 'a-b']

    #9.3 *: 左边那个字符出现0次或者无穷次
    # print(re.findall("ab*","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
    # ['a', 'ab', 'abb', 'abbbbbbbbbbbb']

    #9.4 +: 左边那个字符出现1次或者无穷次
    # print(re.findall("ab+","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
    # ['ab', 'abb', 'abbbbbbbbbbbb']

    #9.5 {n,m}: 左边那个字符出现n次到m次
    # print(re.findall("ab{0,}","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
    # ['a', 'ab', 'abb', 'abbbbbbbbbbbb']
    # print(re.findall("ab*","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
    # ['a', 'ab', 'abb', 'abbbbbbbbbbbb']
    # print(re.findall("ab{1,}","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
    # ['ab', 'abb', 'abbbbbbbbbbbb']
    # print(re.findall("ab+","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
    # ['ab', 'abb', 'abbbbbbbbbbbb']
    # print(re.findall("ab{2,5}","a ab abb abbb abbbb abbbbbbbb abbbbbbbbbbbb bbbbbbbbb"))
    # ['abb', 'abbb', 'abbbb', 'abbbbb', 'abbbbb']

    #9.6 ?: 左边那个字符出现0次到1次
    # print(re.findall("ab?","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
    # ['a', 'ab', 'ab', 'ab']

    #9.7 .*: 匹配所有
    # print(re.findall("a.*b","123 a1231-==-000b123123123123123b"))
    # ['a1231-==-000b123123123123123b']
    #
    # print(re.findall("a.*?b","123 a1231-==-000b123123123123123b"))
    # ['a1231-==-000b']

     

  • 相关阅读:
    为什么需要防火墙?
    比较流行的前端框架
    java基础面试题
    单列模式
    简单而且好用的随机验证码
    java中的九大隐藏变量.
    搭建Disuz论坛社区
    BZOJ 1006 [HNOI2008]神奇的国度
    COJ 0252 HDNOIP201304阻断传染
    BZOJ 1005 [HNOI2008]明明的烦恼
  • 原文地址:https://www.cnblogs.com/usherwang/p/13426739.html
Copyright © 2020-2023  润新知