一、学习记录
办公掌握下面这些就好了,up后面的举例偏专业,可以跳过哈哈 匹配符: d? d出现0/1次 a* a可以出现0/多次 a+ a出现一次以上 a{6} a出现6次 a{2,} a出现2次以上 a{2,6} a出现2-6次 匹配多个字符: (ab)+ ab出现一次以上 或运算: a (cat|dog) 匹配 a cat or a dog a cat|dog 匹配 a cat or dog 字符类: 匹配由abc构成的数据【abc】+ abc出现一次以上 abc aabbcc 【a-zA-Z0-9】 ABCabc123 ^ 排除 【^0-9】 匹配0-9之外的数据(包括换行符) 元字符 \d 数字字符 \d+ 匹配一个以上的数字 \D 非数字字符 \w 单词字符 单词 数字 下划线即英文字符 \W 非单词字符 \s 空白符 包含空格和换行符 \S 非空白字符 # \b 单词的边界 单词的开头或结尾 单词与符号之前的边界 \B 非单词的边界 符号与符号 单词与单词的边界 . 任意字符不包含换行符 \. 表示. 通过\进行了转意 ^ 匹配行首 $ 匹配行尾 *+{}贪婪匹配 <strong><b>https://www.wondershare. com</strong></b> <.+> 会匹配整串 因为是贪婪匹配 <.+?> 只匹配两个标签代码,➕? 设置为懒惰匹配
二、练习地址
https://regex101.com/
三、案例:读取页面失败用例编号
# coding=utf-8 """ 作者:gaojs 功能: 新增功能: 日期:2022/6/13 17:58 """ import os import requests def get_error_case_number(module): """ 获取失败用例编号 """ if not os.path.exists('error'): os.mkdir('error') url = f'http://[192::1:192]/cgi-bin/test_report.pl?build=netIAG_3_2_0_6_gaojs_708&module={module}&result=fail' resp = requests.get(url) # print(resp.text) result = re.findall(r'[0-9]{10}.py', resp.text) for num in result: # 只要数字部分 num = num.split('.')[0] with open(f'error/{module}_err.txt', mode='a') as fin: fin.write(num + '\n') print(num) get_error_case_number('http')