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.
原文地址:https://www.cnblogs.com/luoluokang/p/12735726.html