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

如何在Ruby中替换/删除字符串中的特定特殊字符?

Ruby处理特殊字符:删除@并替换/为_

直接利用Ruby字符串的gsub方法,通过链式调用就能完成需求:

def process_string(str)
  str.gsub(/@/, '').gsub('/', '_')
end

实现思路

  1. 删除所有@字符:使用gsub(/@/, ''),把字符串中所有@替换为空字符串,等价于直接删除该字符。
  2. 替换/为_字符:紧接着调用gsub('/', '_'),全局替换所有斜杠为下划线。

示例验证

示例1

输入:

string = "noMad@/places/-/contents/imr/-/pops/-"

调用方法后:

output_string = process_string(string)
# 输出结果:"noMad_places_-_contents_imr_-_pops_-"

(注:你提供的示例1预期结果中-pops应为笔误,按照原输入的/-/pops/-,替换后应为-_pops_-)

示例2

输入:

string = "cat@/places/-/chart/rules"

调用方法后:

output_string = process_string(string)
# 输出结果:"cat_places_-_chart_rules"

如果想要更高效的写法(仅遍历字符串一次),可以合并为单次gsub调用,通过匹配分支处理不同字符:

def process_string(str)
  str.gsub(/[@\/]/) { |char| char == '@' ? '' : '_' }
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:50:29