2 回答

TA贡献1772条经验 获得超6个赞
更新
如果您坚持使用正则表达式来跟踪失败,您可以执行以下操作:
for i in s.split('\n'):
number = re.findall(r'^\d+', i)
if number: failure = re.findall(r'^(\d+)\.(.*?)\s_{2,}', i)
if 'failed' in i:
print(failure)
返回:
[('9', 'TX_MULTI_VERIFICATION 2412 DSSS-1 NON_HT BW-20 TX1')]
[('11', 'TX_MULTI_VERIFICATION 2472 DSSS-1 NON_HT BW-20 TX1')]
[('12', 'TX_MULTI_VERIFICATION 2412 CCK-11 NON_HT BW-20 TX1')]
您可以在此处查看此正则表达式的一种形式。

TA贡献2041条经验 获得超4个赞
您可以使用re.split分割成多个部分,然后[failed]在每个部分中查找字符串:
splitted = re.split(r'(\d{1,2})\.(.*)(?= _{3,})', text)
failed = [(splitted[i-2], splitted[i-1]) for i, s in enumerate(splitted) if re.search(r'\[failed\]', s)]
failed
# [('9', 'TX_MULTI_VERIFICATION 2412 DSSS-1 NON_HT BW-20 TX1'),
# ('11', 'TX_MULTI_VERIFICATION 2472 DSSS-1 NON_HT BW-20 TX1'),
# ('12', 'TX_MULTI_VERIFICATION 2412 CCK-11 NON_HT BW-20 TX1')]
这里将re.split文本分成三个子组:
1. 第 1 组(部分编号)
2. 第 2 组(部分标题)
3. 第 3 组(部分正文)
如果第 3 组中存在匹配,则返回第 1 组和第 2 组 - 因此,splitted[i-2]和splitted[i-1])
添加回答
举报