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

如何使用gsub移除字符串中特殊字符及其周边的字符?

用Ruby gsub搞定*及周边内容的移除需求

直接上可行的代码方案:

# 假设myString是包含目标字符串的数组
myString.each do |str|
  cleaned_str = str.gsub(/\s?[\w-]*\*[\w-]*\s?/, '').strip
  puts "\"#{cleaned_str}\""
end

正则逻辑拆解

这个正则专门匹配要删掉的片段:

  • \s?:处理*前后可能带的单个空格(比如示例里 *bb-bb前面的空格)
  • [\w-]*:匹配任意数量的字母、数字、下划线或者连字符——覆盖题目说的"周边的字母数字",连字符也包含进去,毕竟像cc-cc*这种整段都要删除
  • \*:精准匹配目标特殊字符*(加转义是因为*在正则里是特殊元字符)
  • 整个表达式会把*和它前后关联的字母数字、连字符,还有可能的前后空格一起匹配到,替换为空字符串后用strip处理可能残留的首尾空格

对应示例测试

拿题目里的输入逐一验证:

  • 输入"a-a b-b cc-cc*" → 匹配到 cc-cc*,替换后得到"a-a b-b"
  • 输入"1-1 *bb-bb" → 匹配到 *bb-bb,替换后得到"1-1"
  • 输入"aa-bb*" → 匹配到整串aa-bb*,替换后得到""
  • 输入"aa-aa *3b-3b" → 匹配到 *3b-3b,替换后得到"aa-aa"

完全符合预期输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 01:15:56