我正在尝试创建一个函数,该函数使用文本文件(例如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'。
如何使最后两个输出运行?
答案 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)))