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

如何在Ruby字符串的货币代码与对应金额之间添加分隔空格

Ruby 货币代码与金额紧邻空格插入解决方案

原有正则/\d+/匹配所有连续数字,在所有数字前后加空格,会拆分小数、误改字母数字混合的编号(如123X87),不符合需求。

核心思路

利用ISO 4217标准国际货币代码均为3位大写英文字母的规则,仅匹配「3位大写字母紧邻数字」的场景,在二者中间插入空格,不会干扰其他内容。

实现代码

# 测试样例1
str = "I have purchased and item at USD500.80 from online store store 123X87"
processed_str = str.gsub(/([A-Z]{3})(\d)/, '\1 \2')
# 输出结果:I have purchased and item at USD 500.80 from online store store 123X87

# 测试样例2(EUR)
str2 = "I have purchased and item at EUR500.80 from online store store 123X88"
processed_str2 = str2.gsub(/([A-Z]{3})(\d)/, '\1 \2')
# 输出结果:I have purchased and item at EUR 500.80 from online store store 123X88

# 测试样例3(GBP)
str3 = "I have purchased and item at GBP500.80 from online store store 123X88"
processed_str3 = str3.gsub(/([A-Z]{3})(\d)/, '\1 \2')
# 输出结果:I have purchased and item at GBP 500.80 from online store store 123X88

正则说明

  • ([A-Z]{3}):第一个捕获组,匹配连续3个大写英文字母,覆盖绝大多数主流国际货币代码格式
  • (\d):第二个捕获组,匹配紧跟在3位大写字母后的第一个数字
  • '\1 \2':替换规则,保留两个捕获组的原有内容,在二者中间插入一个空格

如果业务场景中存在非3位的特殊货币代码,调整正则中{3}的匹配位数即可适配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:06:06