我的代码中包含以下正则表达式(regex),我urls.py
想知道它的含义。特别(?P<category_slug>
是正则表达式的部分。
r'^category/(?P<category_slug>[-\w]+)/$
Answers:
(?P<name>regex)
-圆括号将正则表达式分组。它们捕获其中正则表达式匹配的文本,这些文本可以用尖括号之间的名称引用。名称可以由字母和数字组成。
在django中,命名捕获组作为关键字参数传递到您的视图。
未命名的捕获组(仅带有括号)将作为参数传递给您的视图。
?P是命名捕获组,与未命名捕获组相反。
http://docs.python.org/library/re.html
(?P<name>...)
与正则括号相似,但是通过符号组名可以在正则表达式的其余部分中访问与组匹配的子字符串。组名必须是有效的Python标识符,并且每个组名必须在一个正则表达式中仅定义一次。符号组也是带编号的组,就像未命名该组一样。因此,在下面的示例中,名为id的组也可以称为编号为1的组。
(?P<category_slug>)
创建一个名为的匹配组category_slug
。
正则表达式本身会匹配一个字符串,该字符串以category/
字母开头,然后是字母数字字符,破折号-
和下划线的混合_
,后跟一个斜杠。
正则表达式接受的示例URL:
re
模块提供匹配表达式的函数。如果文本与正则表达式匹配,它们将返回Match对象。然后match.group('category_slug')
返回组(的内容'foo'
,'foo_bar-baz'
等等)。
3.6版的新功能。
(?P<name>...)
与常规括号类似,但是可以通过符号组名来访问与组匹配的子字符串。组名必须是有效的Python标识符,并且每个组名必须在一个正则表达式中仅定义一次。符号组也是带编号的组,就像未命名该组一样。
从Python3Regex复制粘贴
category_slut