当my_file
中的一个句子以一个单词开头,后跟一个数字,例如“City1”、和,在my_file
中有另一个以“City2”开头的句子,则以下代码只返回第一个句子:
description = re.findall("\n"+i+"[\s\,\d\(].*\.\n", my_file) #i equals 'City'
if description:
for d in description:
d = d.replace('\n', ' ')
bufferlist.append(d)
bufferlist[:] = unique( bufferlist ) #unique is a function removing duplicates from a list while keeping its order
my_string = ' '.join(bufferlist)
del bufferlist[:]
else:
my_string = '0'
为什么我不能同时得到my_string
中的第一句和第二句?在
编辑
问题是del bufferlist[:]
。这就避免了每次迭代中所需的匹配项堆积。循环之后必须删除bufferlist
。在
试试看这个。你正在使用
\n
,这可能不会将其留给其他人匹配。在参见演示。在
https://regex101.com/r/VIXyar/1
相关问题 更多 >
编程相关推荐