所以我试图在文件的每一行中找到一个或多个字符串,并计算每个字符串在文件中总共出现的次数。在某些行中只有一个字符串,但在其他行中可能有多个目标字符串,如果这有意义的话。我正在尝试使用正则表达式来执行此操作。
所以我尝试的是如下(已经读入文件并使用 .readlines 将其分成几行):
1count=0
2count=0
3count=0
Pattern=r'(?i)(\bString1\b)|(\bString2\b)|(\bString3\b)'
i=0
while i!=len(lines)
match=re.search(pattern, lines[i])
if match:
if match.group(1):
1count=1count+1
elif match.group(2):
2count=2count+1
elif match.group(3):
3count=3count+1
i=i+1
这在行中没有多个匹配项时有效,但是当有多个匹配项时,它显然只计算第一个匹配项,然后继续。有没有办法让我扫描整条线?我知道 re.findall 找到所有匹配项,但它随后将它们放入一个数组中,我不知道如何可靠地计算每个单词的匹配项数,因为 findall 中的匹配项在数组中每个都有不同的索引循环通过。