在txt文件中使用re.findall

时间:2018-03-25 13:13:22

标签: python regex python-2.7

我想使用java -jar yourjar.jar 来检测.txt文件中显示的单词的次数。此外,如果我想要计算 Hello 一词出现在文本 Hello oo 中的次数,我需要这样做。

以下是我的所有代码:

-cp

2 个答案:

答案 0 :(得分:4)

为什么甚至使用正则表达式?

count()方法会做同样的事情:

with open('text.txt') as f:

    total = f.read()
    print total.count('Hello')

并且不需要导入模块,因为它是内置的。

使用正则表达式时也不建议使用r作为原始字符串前缀。 total = re.findall(r'Hello')

答案 1 :(得分:2)

创建文件:

echo "Hellooo there.
Hello hello Hello" > file.txt

查找所有"Hello"

In [1]: import re

In [2]: with open('file.txt') as f:
   ...:     all_hellos = re.findall('Hello', f.read())
   ...:

In [3]: print(len(all_hellos))
3

上述内容仅代表Hello,但不代表hello。这会将整个文件缓存在内存中,所以除非你使用大文件,否则这样就可以了。

请记住re.findall()将返回找到的所有事件的列表,而不是发生的次数。