ruby-on-rails - Ruby:使用正则表达式扫描后无法将字符串转换为符号

标签 ruby-on-rails ruby

在我的字符串上运行正则表达式后,我用扫描返回所有数学(它返回一个字符串数组)。我尝试将每个元素转换为_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/

相关文章:

ruby-on-rails - rails : Displaying published post by all and unpublished post of current_user

Ruby:如何将 10 年添加到 DateTime.now

ruby-on-rails - 检查数组是否可排序

Mysql2::错误:尝试获取锁时发现死锁;尝试重新启动事务:INSERT INTO

ruby-on-rails - Ruby 和 Rails 在星期几上存在差异?

ruby - BasicObject 的 singleton_class 的父类(super class)如何以及为什么是 Ruby 中的 Class 类?

ruby-on-rails - 从字符串数组中删除数字

ruby - 如何为 Linux 构建自定义文件系统?

ruby-on-rails - 如何为 datetime_select 助手设置时区

ruby-on-rails - 分配(:user) returning nil rather than user