ruby - 如何使用 gsub 删除返回字符串中的 "/"和 "/i"?

标签 ruby gsub

我有这一行:msg =“找不到列:#{missing_columns.map(&:inspect).join(',')}”

输出:无法找到列:/firstname/i,/lastname/i

有没有一种方法可以使用 gsub 仅返回不带“/”和“/i”的列名称?或者有更好的方法吗?

我尝试过 errors = msg.gsub(/\/|i/, '') 但它返回第一个缺失的列“frstname”。

最佳答案

鉴于这些似乎是不区分大小写的正则表达式含义

missing_columns 
#=> [/firstname/i,/lastname/i]

在这种情况下,您可以使用 Regexp 已经响应的方法,而不是将它们转换为字符串并尝试从那里操作它们。 Regexp#source

Regexp#source - “返回模式的原始字符串。”它不会返回文字边界 (/) 或选项(在本例中为i)

missing_columns.map(&:source).join(', ')
#=>  "firstname, lastname"

关于ruby - 如何使用 gsub 删除返回字符串中的 "/"和 "/i"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75289193/

相关文章:

在 R 中同时将 "1"替换为 "0",将 "0"替换为 "1"

r - gsub 查找模式

javascript - [Ruby on Rails] 找不到类型为 'jquery-ui/autocomplete' 的文件 'application/javascript'

ruby - 如何使用 Mechanize (ruby) 登录 vBulletin 3.6

ruby-on-rails - 如何解决 : validates. rb :96:in `rescue in block in validates' : Unknown validator (. ..)

ruby - 何时在 Ruby 中使用 Kernel#gsub?

ruby - 忽略正则表达式中的字符和单词边界

r - R中的URLencode问题

ruby-on-rails - SQLite3::SQLException:迁移时重复的列名

c# - 如何在 .NET 中使用 Ruby 代码?