一、学习记录
办公掌握下面这些就好了,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')