如何使用正则表达式在文件中搜索一个或多个字符串,并分别统计每个字符串的个数?

问题描述 投票:0回答:0

所以我试图在文件的每一行中找到一个或多个字符串,并计算每个字符串在文件中总共出现的次数。在某些行中只有一个字符串,但在其他行中可能有多个目标字符串,如果这有意义的话。我正在尝试使用正则表达式来执行此操作。

所以我尝试的是如下(已经读入文件并使用 .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 中的匹配项在数组中每个都有不同的索引循环通过。

python regex search match string-matching
© www.soinside.com 2019 - 2024. All rights reserved.