python - 谷歌应用引擎正则表达式

标签 python regex google-app-engine

我正在从事 Google 应用引擎项目,但遇到了一个难题。以下应该(如果正则表达式是正常的)将不包含单词“test”的所有内容重定向到 MainPage 类,并将其余内容重定向到 TestPage 类。

application = webapp.WSGIApplication(
                                     [
                                        ('[^(test)]*', MainPage),
                                        ('.+', TestPage)
                                     ],
                                     debug=True)

相反,我发现正在解释正则表达式:

('[^tes]*', MainPage)

这意味着任何包含 t、e 或 s 的内容都不会指向 MainPage(在本例中,它将指向 TestPage)。显然,解决方法是重新编写 TestPage 正则表达式,但我不想做一个解决方法。这应该无需重写即可工作。

我是不是在某处遗漏了一些图书馆?这是配置问题吗?在运行 run_wsgi_app 之前调用函数或设置属性的问题要少得多,但这看起来不一致。


更新

事实证明,罪魁祸首是两件事。首先,这是我在语法方面的错误(Mea culpa)。其次,我用来确认正则表达式的工具说该表达式不会匹配“test”,但会匹配“t est”。

最佳答案

实际上,它被解释为与除了方括号内的前导插入符之外的任何字符重新排列相同,例如 [^est()]。标准的正则表达式语法不包含直接的方法来指定与特定正则表达式匹配的语言的补语。

在这种情况下,您无需担心。按照 Erik Noren 的建议更改匹配表达式的顺序,如下所示:

application = webapp.WSGIApplication(
                                     [
                                        ('test', TestPage)
                                        ('.+', MainPage),
                                     ],
                                     debug=True)

这直接实现了相同的结果。

关于python - 谷歌应用引擎正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4037484/

相关文章:

java - 使用正则表达式解析 Oracle 脚本

REGEXP_LIKE 奇怪的行为

google-app-engine - Go GAE 应用程序在本地工作,部署后我得到 404/nothing

python - TensorFlow 是否允许定义未定义大小的变量?

python - 使用双反斜杠时获取用户路径 (Python)

regex - grep 是否有任何命名的正则表达式捕获?

google-app-engine - Google App Engine - 接收邮件(带附件)是否会收取传入带宽费用?

python - 数据帧转换 |更好的方法?

python - 如何在Python中找到增加和减少的趋势

python - 并发访问应用引擎中的数据存储