在我的字符串上运行正则表达式后,我用扫描返回所有数学(它返回一个字符串数组)。我尝试将每个元素转换为_sym,但它无法正常工作。
我的代码是这样的:
path = "tests/:id/question/:title"
res = path.scan(/:\w+/)
res.map!(&:to_sym)
最终我得到:
=> [:":id", :":title"]
代替 [:id, :title]
最佳答案
那是因为使用/:\w+/您还将“:”作为字符串的一部分。
尝试不使用“:”,然后您就可以将这些字符串转换为符号:
'tests/:id/question/:title'.scan(/(?<=:)\w+/).map(&:to_sym)
# [:id, :title]
关于ruby-on-rails - Ruby:使用正则表达式扫描后无法将字符串转换为符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54487754/