电子邮件的正则表达式也可以使用十进制值。我如何解决它?

时间:2018-09-17 06:16:54

标签: python regex django

我有以下两种正则表达式模式。

 url(r"^list/(?P<email>[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})?/?", MyFunction_ListAPIView.as_view()),
 url(r"^list/(?P<id>[\d+])/$", OtherFunction_ListAPIView.as_view()),

我想为电子邮件和ID具有两个单独的功能。 如果传递了电子邮件,则应调用MyFunction,但是如果传递十进制值,则应调用OtherFunction

我只是像这样传递了一个十进制值-这里11是一个十进制值,而不是正则表达式。但是它仍在调用相同的功能。关于我可能做错了什么建议吗?

http://127.0.0.1:8000/api/job/list/11/ 

1 个答案:

答案 0 :(得分:2)

第一个正则表达式末尾的?/?使电子邮件成为可选项。我不知道您在网址列表中有什么,但是我建议您在https://regex101.com/尝试使用正则表达式,以便您可以轻松调试任何网址。