Я пытаюсь написать сценарий hubot, который отвечает на два разных типа ввода. Пользователь может либо ввести название остановки местного общественного транспорта, либо опционально добавить к нему задержку.
Таким образом, ввод может быть dvb zellescher weg
или dvb albertplatz
для первого варианта или dvb zellescher weg in 5
или dvb albertplatz in 10
для второго. («dvb» здесь — ключевое слово для моего сценария, а «zellescher weg» и «albertplatz» — два примера названий остановок)
При попытке сопоставить их с регулярным выражением я столкнулся с проблемой, когда регулярное выражение, с которым я работал на разных сайтах тестирования (например, regex101, которое, кажется, рекомендуется здесь и делает JS), не будет работать в моем коде. Регулярное выражение для сопоставления ввода без числа — /^dvb (\D*)$/
, и я использую /dvb\s+(.*)in (\d*)/
для соответствия случаям, когда пользователь ввел задержку.
Минимальный пример кода для моего hubot, который не подходит по неизвестным мне причинам, выглядит так:
robot.respond /^dvb (\D*)$/, (res) ->
hst = res.match[1]
res.send hst
Спасибо за любую помощь в этом.
/^dvb\s+(\D+)(\sin\s\d+|)$/
- person Jaromanda X   schedule 28.07.2015