Urls.pyに次の正規表現がありますが、その意味を知りたいです。具体的には、正規表現の_(?P<category_slug>
_部分。
r'^category/(?P<category_slug>[-\w]+)/$
(?P<name>regex)
-丸括弧は、それらの間の正規表現をグループ化します。それらは、その中の正規表現に一致するテキストをキャプチャし、シャープな括弧の間の名前で参照できます。名前は文字と数字で構成されます。
Djangoでは、名前付きのキャプチャグループがキーワード引数としてビューに渡されます。
名前のないキャプチャグループ(括弧のみ)がビューに引数として渡されます。
?Pは、名前のないキャプチャグループではなく、名前の付いたキャプチャグループです。
http://docs.python.org/library/re.html
(?P<name>...)
通常の括弧に似ていますが、グループと一致する部分文字列は、シンボリックグループ名名を使用して、正規表現の残りの部分からアクセスできます。グループ名は有効なPython識別子である必要があり、各グループ名は正規表現内で1回のみ定義する必要があります。シンボルグループは、グループに名前が付けられていないかのように番号付きグループでもあります。次の例のidという名前のグループは、番号付きグループ1として参照することもできます。
(?P<category_slug>)
は、category_slug
という名前の一致グループを作成します。
正規表現自体は、category/
で始まり、英数字、ダッシュ-
および下線_
の後に続くスラッシュが続く文字列と一致します。
正規表現で受け入れられるURLの例: