Python:使用与不带空格的字符串输入匹配的文本文件查找单词

时间:2019-02-27 17:18:01

标签: python python-3.x text-files

我正在尝试创建一个函数,该函数使用文本文件(例如dictionary.txt)从不带空格的字符串中查找单词。这类似于从密码中检测单词。

我的函数当前使用一个字符串,它将从.txt文件中找到并打印出来。我的问题目前无法从该字符串中找到其他任何单词。正则表达式可能是这里的解决方案,但是我不知道如何从我的代码中实现它。我尝试使用正则表达式使用forloop,但是它不起作用。我将其注释掉,因为该行似乎不起作用。

这是我的代码:

#import re
def filesearch(userstring):
try:
    filename = "words.txt"
with open(filename) as search:
    for line in search:
        line = line.rstrip()
#         for word in re.findall(r'\w+', line):
        if userstring.lower() == line.lower():
            print("\nWords found in file: \n")
            print(line)

except OSError:
print("ERROR: Cannot open file.")

filesearch("cars")
filesearch("holidays")
filesearch("runningaway")
filesearch("abcgobears124")

注意:最后两个输出将不运行。

filesearch(“ runningaway”)的输出应打印单词'running'和'away'。

对于filesearch(“ abcgobears124”),输出应显示单词'go'和'bears'。

如何使最后两个输出运行?

1 个答案:

答案 0 :(得分:0)

您可以将re.findall与包含words.txt中所有单词的交替模式一起使用:

import re
def filesearch(userstring):
    print('\n'.join(re.findall('|'.join(map(str.rstrip, open("words.txt"))), userstring, re.IGNORECASE)))