gpt4 book ai didi

python - 如果是数字,如何提取行的最后一个

转载 作者:行者123 更新时间:2023-12-02 04:14:43 30 4
gpt4 key购买 nike

我下面有一个文本文件,如果行的最后一部分是数字,则尝试提取字符串

4:16:09PM - xx yy DOS activity from 10.0.0.45
9:43:44PM - xx yy 1A disconnected from server
2:40:28AM - xx yy 1A connected
1:21:52AM - xx yy DOS activity from 192.168.123.4

我的代码

with open(r'C:\Users\Desktop\test.log') as f:
for line in f:
dos= re.findall(r'\d',line.split()[-1])
print (list(dos))

我的出局

['1', '0', '0', '0', '4', '5']
[]
[]
['1', '9', '2', '1', '6', '8', '1', '2', '3', '4']

预期

['10.0.0.45','192.168.123.4']

最佳答案

我猜,

(?m)(?:\d+\.){3}\d+$

可能只是提取那些所需的 IP。

RegEx Demo

测试

import re

string = '''
4:16:09PM - xx yy DOS activity from 10.0.0.45
9:43:44PM - xx yy 1A disconnected from server
2:40:28AM - xx yy 1A connected
1:21:52AM - xx yy DOS activity from 192.168.123.4
'''

expression = r'(?m)(?:\d+\.){3}\d+$'


print(re.findall(expression, string))

输出

['10.0.0.45', '192.168.123.4']
<小时/>

如果您想简化/更新/探索表达式,regex101.com 的右上角面板已对此进行了解释。 。您可以在 this debugger link 观看匹配步骤或进行修改,如果你有兴趣的话。调试器演示了 a RegEx engine 如何可能会逐步消耗一些示例输入字符串并执行匹配过程。

<小时/>

正则表达式电路

jex.im可视化正则表达式:

enter image description here

关于python - 如果是数字,如何提取行的最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58986063/

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