шаблон регулярных выражений для сопоставления с командой

#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