python - 正则表达式模式以匹配命令
问题描述
我正在尝试制作一个地址簿程序。我正在制作一个带有 4 个命令 -L、-A、-C、-D 的命令行程序,用于从通讯录中查找、添加、更改或删除联系人。我正在使用 re 创建一个模式来匹配用户输入到某个命令的输入。我对 add 命令的正则表达式模式有问题。该命令需要输入 [name] 和 [email] 以及命令 -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
并在正则表达式搜索中获得 None
解决方案
推荐阅读
- javascript - 如何在不弄乱唯一 ID 的情况下克隆输入字段?
- python - 按字母顺序对序列进行排序-Python
- dart - 我试图在飞镖垫,在线平台上运行代码
- c# - 我的游戏在过渡完成之前加载 Unity 我该如何解决这个问题?
- linux - 如果文件可使用 s3 命令公开访问,如何显示?
- node.js - 填充用户阅读为未定义
- mysql - 一段时间间隔后,部署在heroku上的“使用mysql的节点Api”崩溃
- laravel - Laravel 8 - 组件的自定义属性给出错误:无法解析的依赖解析
- c# - MVC - 如何显示列表?
- android - 我想在 android 应用程序的设置应用程序中打开特定页面