我有这一行: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/