• re模块


      1 # re 模块  正则表达式  处理字符串  模糊匹配
      2 
      3 # 元字符 . $ * + {} [] ()  ^ |
      4 
      5  # . 通配符  所有字符都能匹配 除了
    
      6 
      7 import re
      8 # a = re.findall('a..l','gkayjl') # ...表示中间任何字符
      9 # a = re.findall('a..l','bcakklsbdvksaool')    符合条件的话可以匹配多个
     10 # print(a)
     11 
     12 #  ^ 尖角号  以什么开头 在字符串的开头进行匹配
     13 # a = re.findall('^a..l','akalbcd')
     14 # print(a)
     15 
     16 # $ 放在结尾处
     17 # a = re.findall('a..l$','abcdefg axxl')
     18 # print(a)
     19 
     20 # 重复符 有四个,分别是* +  ?  {}
     21 
     22 # *  匹配0---无穷次
     23 # +    匹配 1---无穷次
     24 # a = re.findall('a*','bdaksjbksbaaaaaaaaaaaaaaaaaaaaaaaaahjvhvkkavj')
     25 # print(a)
     26 
     27 # a = re.findall('^a*','aaaaaksbaaaaaaahjvhvkkavjaaaa')
     28 # print(a)
     29 
     30 # a = re.findall('a*$','aaaaaksbaaaaaaahjvhvkkavjaaa')
     31 # print(a)
     32 
     33 # a = re.findall('alex+','absalexxxxxxxciaale')
     34 # print(a)  #   输出 : ['alexxxxxxx'] 最少有一个符合
     35 
     36 # a = re.findall('alex*','absalexxxxxxxciaale')
     37 # print(a)
     38 
     39 
     40 # ?  0---1 次这两个值
     41 # a = re.findall('alex?','hiubbalex ale alexxxx')
     42 # print(a)
     43 
     44 #  {}  是万能的  多少次都行
     45 # {0,}===》*    {1,}===》+     {0,1}===》?
     46 
     47 # a = re.findall('alex{6}','hiubb ale alexxx alexxx alexxxxxx')
     48 # 匹配x重复六次的
     49 # print(a)
     50 
     51 # * + ? 都是贪婪匹配   加上 ? 变为惰性匹配
     52 # a = re.findall('alex*?','asdghjalexxxxxbljjl')
     53 # print(a)
     54 
     55 
     56 # a = re.findall('a[a-z]','aa a ab ac az yui')
     57 # print(a)
     58 
     59 # a = re.findall('a[a-z]12','aa12 a1 ab2 ac az yui')
     60 # print(a)
     61 
     62 # a = re.findall('a[b*z]','aa az a*z ')
     63 # print(a)
     64 
     65 # a = re.findall('a[a-z]*','aa a abbbbbbbbbbbbbbbbbbbbbbb 1aaa abcdefghigklmnopq  fghchgxgjd jtyr yui')
     66 # print(a)
     67 
     68 
     69 # a = re.findall('a[^a-z]','aa09 av a9 a7')
     70 # print(a)
     71 
     72 
     73 # a = re.findall('([^()]*)','13+(45*6+8-5*(3-2))')
     74 # print(a)
     75 
     76 # 字符集  [^]非的意思  [-]   []
     77 
     78 # 反斜杠后面跟元字符去除特殊功能  反斜杠后面跟普通字符实现特殊功能
     79 
     80 # d      匹配任何十进制数字;相当于类 [0-9]
     81 # D      与 d 相反,匹配任何非十进制数字的字符;相当于类 [^0-9]
     82 # s      匹配任何空白字符(包含空格、换行符、制表符等);相当于类 [ 	
    
    fv]
     83 # S      与 s 相反,匹配任何非空白字符;相当于类 [^ 	
    
    fv]
     84 # w      匹配任何字符,见上方解释
     85 # W      于 w 相反
     86 #       匹配一个特殊字符边界,比如空格,&,#等
     87 # B      与  相反
     88 
     89 
     90 # a = re.findall('d','13+(45*6+8-5*(3-2)')
     91 # print(a)
     92 
     93 # a = re.findall('D+','dog  pig cat')
     94 # print(a)
     95 #
     96 # a = re.findall('s',' 1')
     97 # print(a)
     98 
     99 # 转义字符
    100 
    101 # a = re.findall('I\b','I AIN AA')
    102 # print(a)
    103 
    104 
    105 
    106 # 元字符之分组
    107 
    108 
    109 # a = re.findall('(abc)+','abcabcabcabcabc')
    110 # print(a)
    111 
    112 # search 只找第一个满足的,找到之后便不再找后面的
    113 
    114 # a = re.search('d+','abcdefg123hcjh5')
    115 # print(a)
    116 
    117 # a = re.search('(?p<name>w+)','123abc456')
    118 # print(a)
    119 
    120 # a = re.search('d+','abcde45lhkh12').group()
    121 # print(a)
    122 
    123 
    124 
    125 
    126 
    127 
    128 
    129 # # re模块
    130 # # 常用的方法
    131 # compile(pattern, flags=0)        匹配任何可选的标记来编译正则表达式的模式,然后返回一个正则表达式对象
    132 # match(pattern, string, flags=0)     使用带有可选标记的正则表达式的模式来匹配字符串。如果匹配成功,返回匹配对象,否则返回None
    133 
    134 # a = re.match('d+','12abcde45lhkh23').group()   #只匹配开头的
    135 # print(a)
    136 
    137 # search(pattern, string, flags=0)     使用可选标记搜索字符串中第一次出现的正则表达式模式。如果匹配成功,则返回匹配对象,否则返回None
    138 # findall(pattern, string[, flags] )          查找字符串中所有(非重复)
    139 # 出现的正则表达式模式,并返回一个匹配列表
    140 # finditer(pattern, string[, flags] )        与findall()
    141 # 相同,但返回的是一个迭代器。对于每一次匹配,迭代器都能返回一个匹配对象
    142 
    143 
    144 # split(pattern, string, max=0)         根据正则表达式的模式分隔符,split函数将字符串分割为列表,返回匹配列表,分割最多操作max次
    145 # a = re.split('','hello world')
    146 # print(a)
    147 # a = re.split('[ho ]','hello world')
    148 # print(a)
    149 
    150 
    151 # group(num=0)               返回整个匹配对象,或者编号为num的特定子组
    Never compromise.
  • 相关阅读:
    Codeforces Round #598 (Div. 3)(全)
    Codeforces Round #597 (Div. 2) F
    Codeforces Round #597 (Div. 2) D Shichikuji and Power Grid (MST)
    ACM bitset
    Codeforces Round #592 (Div. 2) E. Minimizing Difference
    Educational Codeforces Round 74 (Rated for Div. 2)D. AB-string
    Educational Codeforces Round 74 (Rated for Div. 2) tandard Free2play
    2018南昌邀请赛网络赛 单调栈 I
    rmq问题
    poj 3259Wormholes
  • 原文地址:https://www.cnblogs.com/luoluokang/p/12735726.html
Copyright © 2020-2023  润新知