循环通过正好 173754 个字符串的大列表(之前从文本文件中读取),我有一个 if 语句来寻找与正则表达式的匹配。像这样:
def filtering(a_list):
for i in a_list:
if re.search(r'\d{0,1}\s+Contacts;\s*', i) is not None:
我想要做的是在匹配发生后自动将接下来的 5 个元素附加到第二个列表中。为这五个元素单独编写正则表达式是不可能的,因为它们没有特殊的格式或值。我所能做的就是在我真正想要的信息之前掌握这一要素。
我怎样才能掌握连续的五种元素?
我尝试附加匹配项的索引,然后用切片获取接下来的五个元素,问题是列表中有很多重复项,所以它显然总是返回第一个最低的索引。
在我读入文本文件并稍微格式化后立即调用该函数:
#Read in input file and somewhat format the text.
test_cases = open('input.txt', 'r')
for i in test_cases:
if len(i) < 64 or i != ';':
k = ';'.join(' '.join(line.split()) for line in i.split('\n'))
#print(k)
my_list.append(k)
#call first cleaning function with the formatted list as input. then close file
filtering(my_list)
test_cases.close()