代码之家  ›  专栏  ›  技术社区  ›  user160917

在Heroku上运行的Sinatra应用程序具有regexperror

  •  1
  • user160917  · 技术社区  · 15 年前

    我的Sinatra应用程序在本地运行良好(见下面的屏幕截图),但当我把它推到Heroku时,它会崩溃,我会得到这个错误。

    未定义(?…)序列:/(?<=(列出所有选定项))\w/: < /代码>

    发生的代码行是

    match=data.match('(?)<=(列出所有选定项))\w')[0]
    < /代码> 
    
    

    我要做的是直接在“列出所有选定项”后捕获下一个字母。

    任何对这意味着什么的暗示都将受到极大的赞赏。

    谢谢。< / P>

    RegexpError - undefined (?...) sequence: /(?<=(LIST ALL SELECTED ))\w/:
    

    发生的代码行是

    match = data.match('(?<=(LIST ALL SELECTED ))\w')[0]
    

    我要做的是直接在“列出所有选定项”后捕获下一个字母。

    任何对这意味着什么的暗示都将受到极大的赞赏。

    谢谢。

    1 回复  |  直到 15 年前
        1
  •  1
  •   AboutRuby    15 年前

    这就是所谓的“积极的观察”。Ruby不支持它们,但是如果这是整个regexp,就不需要它了。

    match = data.match(/LIST ALL SELECTED(\w)/)[0]
    

    Ben(往下看,在评论中)说您的带有lookbehind的regexp确实适用于Ruby1.9.2。Heroku必须使用1.8.6或1.8.7,它没有lookbehinds。