1 import re 2 3 res = r"速度[1-8a-zA-Z]" # 1...8 a...z A...Z 4 result = re.match(res, "速度z") 5 print(result) 6 # 匹配出的数据 7 print(result.group()) 8 9 import re 10 11 res = r"速度w" # 0...9 a...z A...Z 所有汉字 12 result = re.match(res, "速度哈哈") 13 print(result) 14 # 匹配出的数据 15 print(result.group()) 16 17 res = r"速度Wd" # 非单词字符 18 result = re.match(res, "速度,1") 19 print(result) 20 # 匹配出的数据 21 print(result.group()) 22 23 res = r"速度sd" # 空格 tab键 0..9 24 result = re.match(res, "速度 1") 25 print(result) 26 # 匹配出的数据 27 print(result.group()) 28 29 res = r"速度Sd" # 大写的S匹配非空白 30 result = re.match(res, "速度啦1") 31 print(result) 32 # 匹配出的数据 33 print(result.group()) 34 35 res = r"速度." # 通配符,匹配任意 36 result = re.match(res, "速度#") 37 print(result) 38 # 匹配出的数据 39 print(result.group()) 40 41 res = r"速度d{1,2}" # 匹配指定位数1到2位 42 result = re.match(res, "速度19") 43 print(result) 44 # 匹配出的数据 45 print(result.group()) 46 47 res = r"d{11}" # 匹配连续11位的数字 48 result = re.match(res, "13500000000") 49 print(result) 50 # 匹配出的数据 51 print(result.group()) 52 res = r"a{11}" # 匹配一个字符出现多少次 53 result = re.match(res, "aaaaaaaaaaa") 54 print(result) 55 # 匹配出的数据 56 print(result.group()) 57 58 res = r"d{3,4}-?d{7,8}" # ?匹配前面那个可有可无 59 # result = re.match(res, "028-12345678") 60 result = re.match(res, "0531-12345678") 61 print(result) 62 # 匹配出的数据 63 print(result.group()) 64 65 html = """qwert asdfg""" 66 res = r".*" # 匹配出现0次或无限次 *除了 都能匹配 67 result = re.match(res, html) 68 print(result) 69 70 html = """qwert asdfg zxcvb""" 71 res = r".*" # *除了 都能匹配 72 result = re.match(res, html, re.S) # re.s匹配出 的所有数据 73 print(result) 74 75 str1 = """qwertasdfgzxcvb""" 76 res = r".+" # 匹配出现1次或无限次 77 result = re.match(res, str1) # re.s匹配出 的所有数据 78 print(result) 79 80 判断变量是否合法 81 82 import re 83 84 85 def main(): 86 names = ["name1", "_name", "str!", "__main__", "1name", "_age_1", "a#123"] 87 res = r"^[a-zA-Z_][a-zA-Z0-9_]*$" 88 89 for name in names: 90 ret = re.match(res, name) 91 if ret: 92 print("变量名:%s 符合要求" % ret.group()) 93 else: 94 print("变量名:%s 不符合要求" % name) 95 96 97 if __name__ == '__main__': 98 main() 99 100 邮箱验证 101 102 import re 103 104 email = [ 105 'ronle@163.com', 106 '441030517@QQ..com', 107 '119941779@qq,com', 108 '5579001QQ@.COM', 109 '1107531656@q?q?.com', 110 '654088115@@qq.com', 111 '495456580@qq@139.com', 112 '279985462@qq。com.cn', 113 'chen@foxmail.com)m', 114 '2990814514@QQ.COM', 115 'xxxxxxxxx@_.com.cn', 116 'xxxxxxxxx@wwew_163sadasdf.com.cn' 117 ] 118 # 使用到普通字符,需要加一个转义符 119 res = r"^[a-zA-Z0-9_-]+@[a-zA-Z0-9]+(.[a-zA-Z0-9]+)+$" 120 121 for e in email: 122 ret = re.match(res, e) 123 if ret: 124 print("%s 是合法的邮箱地址" % ret.group()) 125 126 匹配分组 127 128 import re 129 130 email = [ 131 'ronle@163.com', 132 ] 133 134 # 匹配分组只通过163 126信箱 135 res = r"^([a-zA-Z0-9_-]+)@(163|126)+(.[a-zA-Z0-9]+)+$" 136 137 for e in email: 138 ret = re.match(res, e) 139 if ret: 140 # 取出分组group(1)匹配 ronle 141 print("%s 是用户名" % ret.group(1)) 142 # 取出分组group(2)匹配 163 143 print("%s 是合法的邮箱地址" % ret.group(2)) 144 145 146 import re 147 148 html_str = "<p>hello</p>" 149 html_str2 = "<body><p>hello</p></body>" 150 151 # 1 等值于分组(w*) 转换下就是 <w*>.*</w*> 152 res = r"<(w*)>.*</1>" 153 res2 = r"<(w*)><(w*).*</2></1>" 154 155 ret = re.match(res, html_str) 156 ret2 = re.match(res2, html_str2) 157 print(ret.group()) 158 print(ret2.group()) 159 160 分组别名 (给分组定义个变量) 161 162 import re 163 164 html_str = "<body><p>hello</p></body>" 165 res = r"<(?P<p1>w*)><(?P<p2>w*).*</(?P=p2)></(?P=p1)>" 166 167 ret = re.match(res, html_str) 168 169 print(ret.group()) 170 171 search findall sub 172 173 import re 174 175 # 查找 176 ret = re.search(r"d+", "下阅读量9999") 177 print(ret.group()) # 9999 178 179 # 查找全部 180 ret = re.findall(r"d+", "阅读量9999,下载量9123") 181 print(ret) # ['9999', '9123'] 182 183 # 替换 184 ret = re.sub(r"d+", "777", "阅读量9999,下载量9123") 185 print(ret) # 阅读量777,下载量777 186 187 188 支持函数替换 189 190 def add_num(temp): 191 num = temp.group() 192 result = int(num) + 1 193 return str(result) 194 195 196 # 替换 197 ret = re.sub(r"d+", add_num, "阅读量9999,下载量9123") 198 print(ret) # 阅读量10000,下载量9124 199 200 # 切割 201 ret = re.split(r":| ", "name:cheng beyond") 202 print(ret) # ['name', 'cheng', 'beyond']
import re a = """ <link title="RSS" type="application/rss+xml" rel="alternate" href="https://www.cnblogs.com/ronle/rss"/> """ ret = re.findall('link title="RSS" type="(.+?)" rel', a, re.S) print(ret) # ['application/rss+xml']
let reg = /link title="RSS" type="(.+?)" rel/gi let str = '<link title="RSS" type="application/rss+xml" rel="alternate" href="https://www.cnblogs.com/ronle/rss"/>' let n = reg.exec(str) console.log(n)