19

我想要一个接受所有字符的网址,例如:

(r'^company/(?P<key>[a-zA-Z]+)/doclist/$','CompanyHub.views.docList')

forkey参数,而不仅仅是 ascii 字母字符 它接受所有字符,包括数字、符号,如 $、-、_、...、字母、unicode 字符、...

我怎样才能做到这一点?

4

3 回答 3

38

您的代码应如下所示:

(ur'^company/(?P<key>.*)/doclist/$','CompanyHub.views.docList')

我们需要在开头的 'u' 告诉 python 该字符串接受 unicode 字符。

于 2012-07-08T15:50:23.627 回答
15

正则表达式看起来像这样:

(.*)

这应该匹配除换行符以外的所有字符。

于 2012-07-08T15:46:58.620 回答
2

正如其他人所说:

(.*)

...将匹配所有字符,但它也会匹配一个空字符串(如果正则表达式位于 URL 的末尾,这可能会很糟糕)。如果您想强制要求至少一个字符,请使用以下命令:

(.+)

为了清楚起见,这些在 URL 的中间和末尾都有效,所以像这样的东西非常有效:

url(ur'^package\/(?P<pkgname>.+)\/(?P<pkgversion>.+)', ... )

(正如@tsikov 所说,使用前面的 'u' 表示 unicode)

于 2018-02-09T15:50:23.280 回答