【发布时间】:2019-08-09 22:16:56
【问题描述】:
希望有人能指出我正确的方向。
我正在尝试解析日志文件以了解每天有多少用户登录系统。
日志文件按照下面列出的模式生成。
" "8764","ABCREX/John Doe","00.000.0.000","用户 'ABCREX/John Doe' 从地址 '00.000.0.000' 成功登录。" " " "8764","ABCREX/Jerry Doe","00.000.0.000","用户 'ABCREX/Jerry Doe' 从地址 '00.000.0.000' 成功登录。" " " "8764","ABCREX/Jane Doe","00.000.0.000","用户 'ABCREX/Jane Doe' 从地址 '00.000.0.000' 成功登录。" “
我正在尝试从上述行中捕获用户名并加载到数据库中。
所以我只对价值观感兴趣
约翰·多伊、杰瑞·多伊、简·多伊
但是当我使用 REGEX 进行模式匹配时,它会返回以下内容
client="ABCREX/John Doe">
然后使用我正在使用的代码,我必须应用多个替换来删除 “客户”、“ABCREX/”、“>”...等
我目前有正在运行的代码,但我觉得它非常低效且耗费资源。我正在对标签执行拆分,然后逐行解析阅读。
'''提取用户登录名''' UserLoginName = str(re.search('client=(.*)>',items).group()).replace('ABCREX/', '').replace('client="','').replace ('">', '')
打印(用户登录名)
有什么方法可以告诉 REGEX 只抓取在模式中找到的字符串,而不是在结果中包含模式?
【问题讨论】:
标签: python python-3.x