#python #re
#python #python-re
Вопрос:
Я пытаюсь создать программу для адресной книги. Я создаю программу командной строки с 4 командами -L, -A, -C, -D для поиска, добавления, изменения или удаления контактов из книги адресатов. Я использую re для создания шаблона, соответствующего вводу, который пользователь вводит в определенную команду. У меня возникли проблемы с шаблоном регулярных выражений для команды add. Команда требует ввода [имя] и [адрес электронной почты] вместе с идентификатором для команды -a. и затем передается функции add() для добавления контакта в словарь книги адресата для записи в файл. это то, что у меня есть до сих пор для шаблона регулярных выражений.
add_regex = re.compile(r'''
([a-z] ) #name
s #whitespace
((w ) #first local part
([._])? #seperator
(w )? #second local part
([._])? #seperator
(w )? #third local part
@ #single at sign
w #domain
[.] #period sepeorator
w{2,3}$) #top level domain
s #whitespace
(-a) # cmd
''', re.I | re.VERBOSE)
Регулярное выражение становится правильным, когда я удаляю части шаблона #cmd и #name. и соответствует электронной почте. но после того, как я добавляю их обратно, он не соответствует вводу, я не уверен, почему кто-нибудь, кто может помочь, пожалуйста, сделайте.
Редактировать:
Входные данные, которые я тестировал, являются
keith keith.t.gill@gmail.com -a
и не получаю ничего при поиске регулярных выражений
Комментарии:
1. можете ли вы привести какой-нибудь пример ввода? имя — это только имя без заглавных букв?
2. удалить $ из домена верхнего уровня? это не конец строки, если вы пишете -a после него
3. Я только что понял это, спасибо, я чувствую себя глупо. @trigonom