计算txt文件中“ NZ”和“ O”的出现次数。

时间:2018-12-10 22:58:12

标签: python regex

我正在尝试匹配并计算出txt文件中NZ和O的出现次数...

Import re 
pattern = re.compile(r'NZ')
with open ('scratch_1.txt','r') as f:
    contents = f.read()
    matches = pattern.finditer(contents)
for match in matches:
    print(match)

以上是我当前的代码,它与所有“ NZ”匹配。我要达到的目的是匹配所有'NZ'和'O'并计算出场次数。请帮忙!

3 个答案:

答案 0 :(得分:0)

只需更改模式以查找NZ或O:

pattern = re.compile(r'NZ|O')

答案 1 :(得分:0)

我认为这样做更容易:

n1 = contents.count('NZ')
n2 = contents.count('O')
result = n1+n2

如果您真的想要正则表达式,我认为模式NZ|O应该有用。

答案 2 :(得分:0)

使用在|NZ之间交替((O,竖线字符)的非捕获组。而且我会使用包裹在re.findall中的len,因为re.findall返回了list个事件。

>>> import re
>>> text = 'HellO world! NZO NZ O NZ NZNZNZN O'
>>> len(re.findall(r'(?:NZ|O)', text))
10

在这里进行了测试:https://regexr.com/44ms6