这个Django正则expression式是什么意思? `?P`
我在我的urls.py中有以下正则expression式,我想知道它是什么意思。 特别是正则expression式的(?P<category_slug>
部分。
r'^category/(?P<category_slug>[-\w]+)/$
(?P<name>regex)
– 圆括号组合它们之间的正则expression式。 它们捕获由正则expression式匹配的文本,可以通过尖括号之间的名称引用它们。 名字可能由字母和数字组成。
复制粘贴: http : //www.regular-expressions.info/refext.html
在Django中,命名捕获组作为关键字parameter passing给您的视图。
未命名的捕获组(仅作为括号)作为parameter passing给您的视图。
?P是一个有名的捕获组,而不是一个未命名的捕获组。
http://docs.python.org/library/re.html
(?P<name>...)
类似于正则括号,但是匹配的子string可以在正则expression式的其余部分通过符号组名称来访问。 组名称必须是有效的Python标识符,每个组名称只能在正则expression式中定义一次。 一个象征性的小组也是一个有编号的小组,就像这个小组没有被命名一样。 所以在下面的例子中,名为id的组也可以被引用为编号组1。
(?P<category_slug>)
创build一个名为category_slug
的匹配组。
正则expression式本身匹配一个以category/
开始的string,然后是字母数字字符,破折号和下划线_
,然后是斜线。
正则expression式接受的示例URL:
- 类别/富/
- 类别/ foo_bar这样的名称巴兹/
- 类别/ 12345 /
- 类别/ q1e2_asdf /