82

私の中に次の正規表現 (regex) があり、urls.pyその意味を知りたいです。具体的に(?P<category_slug>は、正規表現の部分。

r'^category/(?P<category_slug>[-\w]+)/$
4

5 に答える 5

86

djangoでは、名前付きのキャプチャグループがキーワード引数としてビューに渡されます。

名前のないキャプチャグループ(括弧のみ)は、引数としてビューに渡されます。

?Pは、名前のないキャプチャグループではなく、名前の付いたキャプチャグループです。

http://docs.python.org/library/re.html

(?P<name>...)通常の括弧に似ていますが、グループによって一致するサブストリングは、シンボリックグループ名nameを介して正規表現の残りの部分からアクセスできます。グループ名は有効なPython識別子である必要があり、各グループ名は正規表現内で1回だけ定義する必要があります。シンボリックグループも、グループに名前が付けられていないかのように、番号が付けられたグループです。したがって、以下の例でidという名前のグループは、番号付きグループ1として参照することもできます。

于 2011-11-03T00:32:22.627 に答える
61

(?P<name>regex)- 丸かっこは、それらの間の正規表現をグループ化します。これらは、鋭角括弧内の名前で参照できる内部の正規表現に一致するテキストをキャプチャします。名前は文字と数字で構成できます。

コピーペースト: http://www.regular-expressions.info/refext.html

于 2011-11-03T00:24:44.663 に答える
25

(?P<category_slug>)という名前の一致グループを作成しますcategory_slug

正規表現自体は、 で始まりcategory/、その後に英数字、ダッシュ-、アンダースコア_、および末尾のスラッシュが続く文字列に一致します。

正規表現で受け入れられる URL の例:

  • カテゴリ/フー/
  • カテゴリ/foo_bar-baz/
  • カテゴリ/12345/
  • カテゴリ/q1e2_asdf/
于 2011-11-03T00:22:47.867 に答える