You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ruby中移除数组内字符串的空格、点、下划线等特殊字符

Ruby on Rails 字符过滤实现方案

你可以直接在现有方法的迭代链中加入正则替换逻辑,一次性完成字符转换和过滤,修改后的完整代码如下:

def valid_sheet_names
   Company.find(@company_id).asset_types.pluck(:name).reject(&:nil?).map do |name|
     name.downcase.gsub(/[\s._]/, '')
   end
end

逻辑说明

  • 正则规则/[\s._]/会匹配三类需要移除的字符:
    • \s:匹配所有空白字符(包含普通空格、制表符等,若仅需要匹配普通半角空格可直接将\s替换为空格即可)
    • .:匹配英文点号
    • _:匹配下划线
  • gsub方法会将字符串中所有匹配到的字符替换为空字符串,达到移除效果。

效果验证

你给出的示例数组处理前后对比如下:

  • 处理前:["hardware", "computer", "network", "mobile devices"]
  • 处理后:["hardware", "computer", "network", "mobiledevices"]

如果需要处理包含点、下划线的场景,例如原字符串为"device.type_test",处理后会输出"devicetypetest",符合需求。

可选简写方案

如果你偏好链式调用的简写形式,可以单独封装处理方法后调用:

# 单独封装字符处理逻辑
def clean_name(name)
  name.downcase.gsub(/[\s._]/, '')
end

def valid_sheet_names
   Company.find(@company_id).asset_types.pluck(:name).reject(&:nil?).map(&method(:clean_name))
end

内容的提问来源于stack exchange,提问作者waqar ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 09:54:05