我要转换:

"890414.14.1422, 900515141092, 950616-12-5414"

致:
"890414-14-1422, 900515-14-1092, 950616-12-5414"

我怎样才能做到?
我试过:
def format_ids(string)
  string.gsub(/(\d{6})[.-](\d{2})[.-](\d{4})/, '\1-\2-\3')
end

format_ids("890414.14.1422, 900515141092, 950616-12-5414")
# => "890414-14-1422, 900515141092, 950616-12-5414"

最佳答案

您应该将输入字符串中的分隔符设为非必需的:

- string.gsub(/(\d{6})[.-](\d{2})[.-](\d{4})/, '\1-\2-\3')
+ string.gsub(/(\d{6})[.-]?(\d{2})[.-]?(\d{4})/, '\1-\2-\3')

注意分隔符后面的问号,它们起作用。

关于ruby - 在数字中插入连字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52023251/

10-11 10:38