gpt4 book ai didi

Python 正则表达式无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 05:54:04 25 4
gpt4 key购买 nike

我是 python 的新手,我正在处理一个我应该继续构建正则表达式的任务,但我遇到了一个句号。

由于某些原因,在添加后面的部分时,一些正则表达式会崩溃并停止匹配之前匹配的一些字符串。

我应该在看起来像这样的字符串上运行正则表达式:

Sep 15 04:34:02 li146-252 sshd[12130]: Failed password for invalid user ronda from 212.58.111.170

代码:

#!/usr/bin/python
import re

with open('livehack.txt', 'r') as file:
for line in file:
dateString = re.findall('^(?:[A-z][a-z]{2}[ ][0-9]{1,2}[ ][\d]{2}[:][\d]{2}[:][\d]{2}) | li146-252 | ?:[0-9]{5} | Failed password for invalid', line)
print dateString

代码的结果:

['Sep 17 06:40:28 ', ' Failed password for invalid']

如您所见,缺少一些应该捕获的东西,我不知道为什么。

提前致谢。

最佳答案

正则表达式总是难以阅读。试试在线 Regex 测试器。这可能会为您提供有关问题所在的更多信息,您可以尝试不同的输入和表达式。这些是我的最爱:

在你的情况下,我认为你已经在正则表达式中添加了一些不应该存在的额外空格字符。空格也算作一个需要匹配的字符。

我还会在用 | 分隔的表达式周围添加括号。有时很难知道插入 | 时使用了哪些部分性格。

像这样:

'(?:^(?:[A-z][a-z]{2}[ ][0-9]{1,2}[ ][\d]{2}[:][\d]{2}[:][\d]{2}))|(?:li146-252)|(?:[0-9]{5})|(?:Failed password for invalid)'

关于Python 正则表达式无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28699786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com