2010-08-26 3 views
1

Моя Синатра приложение прекрасно работает локально (см скриншот ниже), но когда я нажимаю его Heroku он выходит из строя, и я получаю эту ошибкуСинатра приложение работает на Heroku имеет RegexpError

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

Строка кода, где происходит,

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

То, что я пытаюсь сделать, это захватить следующую букву непосредственно после того, как «LIST ALL SELECTED»

Любой INSITE к тому, что это средство было бы весьма признателен.

Спасибо.

enter image description here

+0

Оглядываться не поддерживается? – Amarghosh

+0

Вот что я думаю. Я хотел бы точно знать, так или иначе. Также я хотел бы знать, есть ли способ, которым герой может поддержать это. – Intentss

ответ

1

Это то, что называется положительным просмотром назад. Ruby не поддерживает их, но если это все регулярное выражение, вам это не нужно.

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

Бен (смотреть вниз, в комментариях) говорит, что ваше регулярное выражение с просмотром назад действительно работает на Руби 1.9.2. Heroku должен использовать 1.8.6 или 1.8.7, который не имеет lookbehinds.

+0

Не обижайтесь, но он не работает на Ruby 1.8. Кроме того, обновление с rc2. – AboutRuby

+0

Какая ошибка возникает при попытке опубликовать регулярное выражение AR? Может ли он лучше работать как String (''), чем как Regex (//)? – lxs

+0

@lxs Я переписал код, чтобы устранить положительный lookbehind, нажал на герою, и он отлично работал. Из того, что я мог найти в интернетах, героику работает на Ruby 1.8.6. – Intentss