我找到了这篇文章,现在我也想使用该正则表达式 Google App Engine Key 中允许哪些字符?
但是,在我的处理程序中,我写了类似的东西
('/xxx/[a-zA-Z0-9-_]', MyHandler)
但它不起作用...当我尝试访问它说未找到的链接时...我尝试了很多变体,但似乎无法实现...帮助?!
编辑:谢谢你们的帮助……真是个愚蠢的错误:)
我找到了这篇文章,现在我也想使用该正则表达式 Google App Engine Key 中允许哪些字符?
但是,在我的处理程序中,我写了类似的东西
('/xxx/[a-zA-Z0-9-_]', MyHandler)
但它不起作用...当我尝试访问它说未找到的链接时...我尝试了很多变体,但似乎无法实现...帮助?!
编辑:谢谢你们的帮助……真是个愚蠢的错误:)
您的处理程序当前只允许一个字符。此外,为了安全起见,破折号应始终位于字符类的末尾,以免它指定一个范围:
('/xxx/[a-zA-Z0-9_-]*', MyHandler)
您的正则表达式仅匹配该部分之后的一个字符/xxx/
。您需要通过添加乘数来指定您想要 1或更多:+
('/xxx/[a-zA-Z0-9-_]+', MyHandler)
现在,您的表达式匹配至少有1 个字符的任何内容,而不仅仅是 1,仅此而已。
密钥也只能是500字节长,所以我使用以下
pattern = re.compile('^[0-9A-Za-z._-]{1,500}$')
valid = bool(pattern.match('key-name-to-test'))
老问题,但我想我会添加这个以供将来查看。