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

У меня есть входной текст, который я проверяю на совпадения.

Затем я создаю новый текстовый файл на основе имени пользователя.

Затем я запускаю 2 проверки регулярных выражений на входетекст, и только совпадения копируются в новый текстовый файл.

Вот как это должно происходить, но ничего не происходит. Нет ошибок, ничего. Выходной текстовый файл создается, но он пуст.

Регулярные выражения:

phoneRegex = re.compile(r'''(

(\d{3}|\(\d{3}\))? # area code

(\s|-|\.)? # separator

(\d{3}) # first 3 digits

(\s|-|\.) # separator

(\d{4}) # last 4 digits

(\s*(ext|x|ext.)\s*(\d{2,5}))? # extension

)''', re.VERBOSE)

emailRegex = re.compile(r'''(

[a-zA-Z0-9._%+-]+ # username

@ # @ symbol

[a-zA-Z0-9.-]+ # domain name

(\.[a-zA-Z]{2,4}) # dot-something

)''', re.VERBOSE)

Неработающий код для идентификации совпадений и вставка в отдельный текстовый файл:

matches = []

for groups in phoneRegex.findall('input.txt'):

phone = groups[0]

outputFile.write(str(phone))

outputFile.write('\n')



for groups in emailRegex.findall('input.txt'):

email = groups[0]

outputFile.write(str(email))

outputFile.write('\n')

https://pastebin.com/3pTy2K8P

1 Ответ

0 голосов
/ 21 октября 2019

Как и один из указанных комментаторов

for groups in emailRegex.findall('input.txt'):

не ищет совпадения в файле input.txt, но в строке "input.txt".

Вам нужно прочитатьсначала в файле в виде строки (возможно, при необходимости сделайте некоторую постобработку) и сохраните ее в переменной, которую затем можете передать здесь в качестве аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...