Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这个正则表达式代码不起作用_Python_Regex_Django_Django Views_Django Urls - Fatal编程技术网

Python 为什么这个正则表达式代码不起作用

Python 为什么这个正则表达式代码不起作用,python,regex,django,django-views,django-urls,Python,Regex,Django,Django Views,Django Urls,正在开发Django应用程序 这是我的URL.py urlpattterns = [url(r'^(?P<leagueId>[0-9]+)/(?P<year>[0-9]+)/(?P<team>[\S]+)/$', views.team_detail, name="team_detail"),] 我试着玩Pythex,但我无法让URL匹配 注意:传递的变量是/{number}/{year}/{name} 名称可以由字母数字字符和空格组成。字符类\S匹配除空格以

正在开发Django应用程序

这是我的URL.py

urlpattterns = [url(r'^(?P<leagueId>[0-9]+)/(?P<year>[0-9]+)/(?P<team>[\S]+)/$', views.team_detail, name="team_detail"),]
我试着玩Pythex,但我无法让URL匹配

注意:传递的变量是/{number}/{year}/{name}


名称可以由字母数字字符和空格组成。

字符类
\S
匹配除空格以外的任何字符,并且
%20
在与正则表达式匹配之前被解码为空格


要匹配字母数字字符和空白,可以使用
[\w\s]

我将使用以下正则表达式:

r"(?P<leagueId>\d+)/(?P<year>\d+)/(?P<team>[^/]+)/$"
这就是为什么

[^/]+
我可以帮你

您可能希望将年份限制在以下范围内:

\d{2,4}

但是
%20
是一种空白编码。。。改用
+
。我想很多流量都是从[django]以外的标签来的。Django将在字符串与正则表达式匹配之前提取url路径和第一个斜杠的切割。在Django的上下文中,在开始处添加斜杠实际上是不正确的。提取、解码路径,并在字符串与正则表达式匹配之前切断第一条斜线。
[^/]+
\d{2,4}