我正在尝试使用这个博客中的django-voting教程:
http://new.justinlilly.com/blog/2008/nov/04/django-voting-a-brief-tutorial/
在我的一个应用程序上运行一个简单的投票系统。但就像那篇文章的第一个评论者一样,urls.py中的代码如下:
urlpatterns = patterns('',
url(r'^(?P[-\w]+)/(?Pup|down|clear)vote/?$', vote_on_object, tip_dict, name="tip-voting"),
)给我这个错误:
unknown specifier: ?P[我对正则表达式很不在行,谁有办法修复这个url?
发布于 2009-08-18 21:01:08
看起来他的博客弄乱了网址。它可能应该是:
url(r'^(?P<slug>[-\w]+)/(?P<direction>up|down|clear)vote/?$', vote_on_object, tip_dict, name="tip-voting"),使用的模式来自Python docs,是一个命名组:
(?P<name>...)
类似于常规括号,但组匹配的子字符串
可在正则表达式的其余部分中通过符号组名进行访问。组名必须是有效的Python标识符,并且每个组名在正则表达式中只能定义一次。符号组也是带编号的组,就像没有命名的组一样。因此,下面示例中名为id的组也可以引用为编号为1的组。
例如,如果模式为(?P<id>[a-zA-Z\_]\w\*),则组可以是
在匹配对象的方法(如m.group('id')或m.end('id') )的参数中按其名称引用,在正则表达式本身(使用(?P=id))和提供给.sub() (使用\g<id>)的替换文本中也按名称引用。
https://stackoverflow.com/questions/1296466
复制相似问题