re模块

  1 # re 模块  正则表达式  处理字符串  模糊匹配
  2 
  3 # 元字符 . $ * + {} [] () \ ^ |
  4 
  5  # . 通配符  所有字符都能匹配 除了\n
  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      匹配任何空白字符(包含空格、换行符、制表符等);相当于类 [ \t\n\r\f\v]
 83 # \S      与 \s 相反,匹配任何非空白字符;相当于类 [^ \t\n\r\f\v]
 84 # \w      匹配任何字符,见上方解释
 85 # \W      于 \w 相反
 86 # \b      匹配一个特殊字符边界,比如空格,&,#等
 87 # \B      与 \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的特定子组

 

posted @ 2020-04-20 08:38  luoluokang  阅读(128)  评论(0编辑  收藏  举报