Re.findall只返回Python 2.7中的第一个匹配项
当Re.findall只返回Python 2.7中的第一个匹配项,python,regex,Python,Regex,当my_文件中的一个句子以一个单词后跟一个数字开头时,例如“City1”、和在my_文件中还有另一个句子以“City2”开头时,以下代码仅返回第一个句子: description = re.findall("\n"+i+"[\s\,\d\(].*\.\n", my_file) #i equals 'City' if description: for d in description: d = d.replace('\n', ' ')
my_文件
中的一个句子以一个单词后跟一个数字开头时,例如“City1”、和在my_文件
中还有另一个句子以“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[:]
。这防止了每次迭代中所需的匹配堆积。循环后必须删除缓冲区列表。(?:^ |)(?从文件中发布这些句子您能给出实际的示例文本和所需的输出吗?
(?:^|(?<=\n))City[\s\,\d\(].*\.(?=\n|$)