繁体   English   中英

我怎样才能使我的字符串搜索正确,因为它只显示第一次命中?

[英]How can i make my string search correct because it only shows the first hit?

目前我有这个代码

for startLine, endLine in zip(list1, list2):
    print(startLine, endLine) 
    for line in lines[startLine:endLine]:
        if 'error ' in line and fail_lines:
                  line = line.rstrip()
                  search_results.append(line)

并且被引用的列表是

list1 = [ '1' , '9',  '15']
list2 = [ '7' , '12',  '22']

例如程序运行时的代码

for line in lines[1:7]

即使我使用了 for 循环 function,字符串搜索也只会获得“error”关键字的第一次命中。 我怎样才能使包含给定范围内的错误字符串的所有行都被附加?

你需要做这样的事情,

lines = [
  "error progress while looping", 
  "connection time out error", 
  "timed error sem", 
  "in = error Time"
]

list1 = ['1', '9', '15']
list2 = ['7', '12', '22']
search_results = []

for s_line, e_line in zip(list1, list2):
  for line in lines[int(s_line):int(e_line)]:
    if line.find("error") >= 0:
      line = line.rstrip()
      search_results.append(line)
  print(search_results)

这给了我一个 output,

['connection time out error', 'timed error sem', 'in = error Time']
['connection time out error', 'timed error sem', 'in = error Time']
['connection time out error', 'timed error sem', 'in = error Time']

确保将提取的s_line (start_line)e_line (end_line)转换为int ,然后再将它们作为索引值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM