Python: поиск слов с использованием текстового файла, который соответствует вводу строки без пробелов - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь создать функцию, в которой он находит слова из строки без пробелов, используя текстовый файл (например, dictionary.txt).Это похоже на обнаружение слов по паролю.

Моя функция в настоящее время принимает одну строку и находит ее из файла .txt и распечатывает.Моя проблема в настоящее время не находит других слов из этой строки.Решением может быть Regex, но я понятия не имею, как реализовать это из моего кода.Я попытался использовать 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 голосов
/ 27 февраля 2019

Вы можете использовать re.findall с шаблоном чередования, который включает все слова в words.txt:

import re
def filesearch(userstring):
    print('\n'.join(re.findall('|'.join(map(str.rstrip, open("words.txt"))), userstring, re.IGNORECASE)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...