2010-08-26 45 views
1

我的末日應用程序運行在本地罰款(見下面的截圖),但是當我把它的Heroku它崩潰,我得到這個錯誤西納特拉的應用程序有RegexpError

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

的代碼,其中出現的線

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

我所試圖做的是後直接「LIST所有選定」

任何INSITE到這意味着什麼,將不勝感激捕捉下一個字母。

謝謝。

enter image description here

+0

看後面不支持? – Amarghosh 2010-08-26 06:32:58

+0

這就是我想的。我想肯定知道這種或那種方式。另外我想知道是否有一種heroku可以支持它的方式。 – Intentss 2010-08-26 06:45:21

回答

1

這就是被稱爲積極的回顧後。 Ruby不支持它們,但如果這是整個正則表達式,則不需要它。

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

本(向下看,在評論中)說,你的regexp與lookbehind確實在Ruby 1.9.2上工作。 Heroku必須使用1.8.6或1.8.7,這不會有後顧之憂。

+0

沒有冒犯,但它不適用於Ruby 1.8。另外,從rc2升級。 – AboutRuby 2010-08-26 07:04:37

+0

當你嘗試發佈正則表達式AR時會得到什麼錯誤?它是否更好地作爲String('')而不是正則表達式(//)傳遞? – lxs 2010-08-26 09:04:24

+0

@lxs我重寫了代碼以消除積極向後看,推送到heroku,它工作正常。從我能在互聯網上找到的heroku運行在Ruby 1.8.6上。 – Intentss 2010-08-26 21:41:26