首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索多个模式的正则表达式

搜索多个模式的正则表达式
EN

Stack Overflow用户
提问于 2020-06-27 09:34:18
回答 1查看 27关注 0票数 0

编辑了我的代码,尝试了一种不同的方法来获得所需的输出。如果是对的,请告诉我

代码语言:javascript
复制
import re

pattern1 = re.compile(r'\b(ERROR)')
pattern2 = re.compile(r'^\d+-\d+-\d+')
count =0

with open('sample.txt',encoding='utf-8')as f:
for i in f:
    a= re.search(pattern1,i)
    if a:
        count = count + 1
        b = re.search(pattern2,i)
        if b:
            print(b.group(),':',a.group())

 print('Total ERROR in the logfile:',count)



***output:***
2019-11-22 : ERROR 
2019-11-22 : ERROR 
2019-11-20 : ERROR 
Total ERROR in the logfile: 3

log.txt 2019-11-22 16:46:46:46:46 985- main - INFO -开始等待文件2019-11-22 16:46:56,645 - main - INFO -启动:尝试1检查新文件2019-22 16:47:46,488 -- INFO -成功:从云存储下载文件:返回

2019年-11-22 16:48:48:48- main - ERROR -失败:等待文件2019-11-22 16:49:17,918 - main - INFO -开始等待文件2019-11-22 16:49:32,160 -- INFO -启动:尝试1检查新文件2019-11-22 16:49:39,329 --警告-成功:从云存储下载文件:

2019年-11-22 16:53:30,706 --警告-开始等待文件2019-11-22 16:53:48,180 --错误-失败:等待文件

2019年-11-20 10:00:00,121 --错误-失败:等待文件

EN

回答 1

Stack Overflow用户

发布于 2020-06-27 10:08:00

用于匹配错误行的模式是:

代码语言:javascript
复制
^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.*\bERROR\b.*$

更新后的脚本:

代码语言:javascript
复制
pattern1 = re.compile(r'^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.*\bERROR\b.*$')
count = 0

with open('log.txt',encoding='utf-8')as f:
for i in f:
    a = re.search(pattern1, i)
    if a:
        count = count + 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62608284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档