0

我找到了这篇文章,现在我也想使用该正则表达式 Google App Engine Key 中允许哪些字符?

但是,在我的处理程序中,我写了类似的东西

('/xxx/[a-zA-Z0-9-_]', MyHandler)

但它不起作用...当我尝试访问它说未找到的链接时...我尝试了很多变体,但似乎无法实现...帮助?!

编辑:谢谢你们的帮助……真是个愚蠢的错误:)

4

3 回答 3

3

您的处理程序当前只允许一个字符。此外,为了安全起见,破折号应始终位于字符类的末尾,以免它指定一个范围:

('/xxx/[a-zA-Z0-9_-]*', MyHandler)
于 2013-04-07T15:34:32.487 回答
3

您的正则表达式仅匹配该部分之后的一个字符/xxx/。您需要通过添加乘数来指定您想要 1或更多:+

('/xxx/[a-zA-Z0-9-_]+', MyHandler)

现在,您的表达式匹配至少有1 个字符的任何内容,而不仅仅是 1,仅此而已。

于 2013-04-07T15:34:48.100 回答
1

密钥也只能是500字节长,所以我使用以下

pattern = re.compile('^[0-9A-Za-z._-]{1,500}$')
valid = bool(pattern.match('key-name-to-test'))

老问题,但我想我会添加这个以供将来查看。

于 2014-01-20T13:36:33.617 回答