我在urls.py中有以下正则表达式,我想知道这意味着什么。特别是正则表达式的(?P<category_slug>
部分。
r'^category/(?P<category_slug>[-\w]+)/$
答案 0 :(得分:65)
在django中,命名捕获组将作为关键字参数传递给您的视图。
未命名的捕获组(只是一个括号)作为参数传递给您的视图。
?P是一个命名的捕获组,而不是一个未命名的捕获组。
http://docs.python.org/library/re.html
(?P<name>...)
与常规括号类似,但是子串 在该组的其余部分可以访问该组 表达式通过符号组名称名称。组名必须有效 Python标识符和每个组名必须只定义一次 在正则表达式中。符号组也是编号的 组,就像组没有命名一样。所以该组名为id in 以下示例也可以作为编号组1引用。
答案 1 :(得分:48)
(?P<name>regex)
- 圆括号将它们之间的正则表达式组合在一起。它们捕获与其中正则表达式匹配的文本,可以通过尖括号之间的名称引用。名称可能由字母和数字组成。
答案 2 :(得分:20)
(?P<category_slug>)
创建一个名为category_slug
的匹配组。
正则表达式本身匹配以category/
开头的字符串,然后是字母数字字符组合,短划线-
和下划线_
,后跟斜杠。
正则表达式接受的示例网址:
答案 3 :(得分:-1)
版本3.6中的新功能。
(?P<name>...)
与常规括号类似,但组匹配的子字符串可通过符号组名称名称访问。组名必须是有效的Python标识符,并且每个组名只能在正则表达式中定义一次。符号组也是一个编号组,就像该组未被命名一样。
答案 4 :(得分:-1)
在模式匹配中, 使用此模式传递字符串
(?P<username2>[-\w]+)
此为整数值
(?P<user_id>[0-9]+)