我正在尝试匹配并计算出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'并计算出场次数。请帮忙!
答案 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