gpt4 book ai didi

python - 从文本文件 Python 中提取括号之间文本的出现

转载 作者:行者123 更新时间:2023-11-28 17:03:59 26 4
gpt4 key购买 nike

日志文件:

INFO:werkzeug:127.0.0.1 - - [20/Sep/2018 19:40:00] "GET /socket.io/?polling HTTP/1.1" 200 -
INFO:engineio: Received packet MESSAGE, ["key",{"data":{"tag1":12,"tag2":13,"tag3": 14"...}}]

我感兴趣的是只从括号中提取包含关键字 "key" 的文本,而不是从下面匹配正则表达式模式的所有匹配项。

到目前为止,这是我尝试过的:

import re
with open('logfile.log', 'r') as text_file:
matches = re.findall(r'\[([^\]]+)', text_file.read())
with open('output.txt', 'w') as out:
out.write('\n'.join(matches))

这会输出所有与正则表达式匹配的事件。 output.txt 的所需输出如下所示:

"key",{"data":{"tag1":12,"tag2":13,"tag3": 14"...}}

最佳答案

要匹配方括号内不能包含 [] 但应包含一些其他文本的文本,可以使用 [^][ 进行匹配] 否定字符类。

也就是说,你可以用\[[^][]*]来匹配方括号内的整个文本,如果你需要匹配里面的一些文本,你需要将该文本放在后面[^][]*,然后在结束 ] 之前附加另一个 [^][]*

你可以使用

re.findall(r'\[([^][]*"key"[^][]*)]', text_file.read()) 

参见 Python demo :

import re
s = '''INFO:werkzeug:127.0.0.1 - - [20/Sep/2018 19:40:00] "GET /socket.io/?polling HTTP/1.1" 200 -
INFO:engineio: Received packet MESSAGE, ["key",{"data":{"tag1":12,"tag2":13,"tag3": 14"...}}]'''
print(re.findall(r'\[([^][]*"key"[^][]*)]', s))

输出:

['"key",{"data":{"tag1":12,"tag2":13,"tag3": 14"...}}']

关于python - 从文本文件 Python 中提取括号之间文本的出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52447842/

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