检查字符串是否与动态regexp匹配并查找变量

时间:2018-04-11 21:35:27

标签: python regex django python-3.x

在django网络应用中,用户可以使用动态参数定义网址,例如:

  

/用户/:ID

  

/帖/:帖子ID /:commentid

现在,我已经给出了字符串,例如: /users/mysername< - 匹配/users/:id - 如何从中抽取“myusername”? / users / mysuername / something< - 不匹配 / posts / 10/382 - 匹配,提取两个变量 - postid和commentid

my models.py:

class Server(BaseModel):
    url = models.CharField(verbose_name=_('URL'), max_length=64)

在我看来,我想比较请求的PATH_INFO:

endpoint_url = request.META.get('PATH_INFO').lower().strip().lstrip('/')

假设我有一个带url的服务器模型实例:/ users /:someid 现在,当请求路径是:/ users / somestring0 我想匹配它并将变量some​​id提取为“somestring0”。

参数可能包含任何内容 - 可能包括斜杠(/)。

我怎样才能实现这样的目标?

1 个答案:

答案 0 :(得分:0)

如果这些端点在Django路由中注册,可能只需使用resolver

from django.urls import resolve

match = resolve(my_url)
print(match.args)
print(match.kwargs)