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

如何用Ruby正则表达式替换URL中除首条外的所有斜杠为短横线

方法1:正则表达式替换

如果你固定前缀为localhost:3000,可以用正向否定后发断言匹配目标斜杠直接替换:

url = "localhost:3000/filter/shoes/color/white"
# 匹配所有前面不是localhost:3000的斜杠,替换为-
result = url.gsub(/(?<!localhost:3000)\//, '-')
puts result
# 输出:localhost:3000/filter-shoes-color-white

如果前缀不固定(可能是其他域名/端口),可以用更通用的正则实现:

url = "localhost:3000/filter/shoes/color/white"
# 先匹配开头到第一个斜杠的前缀,再把剩余部分的斜杠全部替换
result = url.sub(/\A(.*?\/)(.*)/) { "#{$1}#{$2.gsub('/', '-')}" }
puts result

方法2:分割拼接(逻辑更简单易维护)

不需要写复杂正则,直接按第一个斜杠拆分字符串处理后拼接即可,适配所有前缀场景:

url = "localhost:3000/filter/shoes/color/white"
# split的第二个参数2表示最多分割为2个部分
prefix, rest = url.split('/', 2)
result = "#{prefix}/#{rest.gsub('/', '-')}"
puts result

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:45:03