Ruby: невозможно преобразовать строку в символ после сканирования с помощью регулярного выражения - PullRequest
0 голосов
/ 02 февраля 2019

После запуска regexp для моей строки я возвращаю все совпадения с помощью scan (которая возвращает массив строк).Я пытаюсь преобразовать каждый элемент в to_sym, но он не работает должным образом.

Мой код выглядит следующим образом:

path = "tests/:id/question/:title"

res = path.scan(/:\w+/)

res.map!(&:to_sym)

в итоге я получаю:

=> [:":id", :":title"]

из [:id, :title]

1 Ответ

0 голосов
/ 02 февраля 2019

Это потому, что с /: \ w + / вы также получаете «:» как часть строки.

Попробуйте без использования «:», и тогда вы сможете конвертировать этистроки в символы:

'tests/:id/question/:title'.scan(/(?<=:)\w+/).map(&:to_sym)
# [:id, :title]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...