【发布时间】:2020-10-13 20:20:38
【问题描述】:
我有这种长日志文件。
2012-02-03 18:35:34 SampleClass6 [INFO] everything normal for id 174025851
2012-02-03 18:35:34 SampleClass4 [FATAL] system problem at id 1991740254
2012-02-03 18:35:34 SampleClass3 [DEBUG] detail for id 1304807656
2012-02-03 18:35:34 SampleClass3 [WARN] missing id 1740
我想准确地找到id=1740,并打印行,但id=174025851 也算在内。如何在一行中找到准确的字符串id=1740 并打印行。
for line in f:
if str(id) in line:
print(line)
它还打印第一行和第二行,但我只想要第 4 行,只有 id 1740
【问题讨论】:
-
如果你的意思是 完全 那么 line.strip().endsWith(“id 1740”) 或类似的东西? (不在一台机器上测试这个自动取款机。)
-
如果您使用
re模块,那么re.search(r'\b1740\b',line)不够用吗? -
Zaman Azam:我更新了我的答案,以反映你在 pciunkiewicz 的回答下写的关于“id”可能出现在字符串的 middle 以及结尾。这个细节应该在问题的前面说明,因为不知道它会使许多答案无效。请您现在编辑您的问题以反映要求。
标签: python regex string match digits