字符串中的Python正则表达式搜索

2024-10-16 22:33:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Python在一行中定位时间戳,我从SO和Python文档中获得了以下代码,但它似乎没有找到所需的子字符串。

import re

line = "Jan  3 07:57:39 Kali sshd[1397]: Failed password for root from 172.16.12.55 port 34380 ssh2"
regex = "[0-9]{2}:[0-9]{2}:[0-9]{2}"
p = re.compile(regex)
m = p.match(line)
print m

# Output: None

我的目标是根据提供的regex从行中提取时间戳。

谢谢你。

重复:这个问题(这是一个重复)为我的问题提供了答案,但它仍然是一个不同的问题。我认为最好不要考虑这个问题,因为我无法通过Python手册和之前的SO问题快速找到答案。


Tags: 字符串答案代码文档定位importreso
2条回答

您可以使用re.findall

import re
line = "Jan  3 07:57:39 Kali sshd[1397]: Failed password for root from 172.16.12.55 port 34380 ssh2"
new_line = re.findall('^[a-zA-Z]+\s+\d+\s+[\d\:]+', line)[0]

输出:

'Jan  3 07:57:39'

你应该试试re.findall

import re
line = "Jan  3 07:57:39 Kali sshd[1397]: Failed password for root from172.16.12.55 port 34380 ssh2"
pattern = "[0-9]{2}:[0-9]{2}:[0-9]{2}"
matches = re.findall(pattern, line)

for match in matches:
    print(match)

相关问题 更多 >