【发布时间】:2014-10-20 01:25:28
【问题描述】:
我不太确定我是否了解非捕获组的工作原理。我正在寻找一个正则表达式来产生这个结果:5.214。我认为下面的正则表达式会起作用,但它正在替换包括非捕获组在内的所有内容。如何编写正则表达式来仅替换捕获组?
"5,214".gsub(/(?:\d)(,)(?:\d)/, '.')
# => ".14"
我想要的结果:
"5,214".gsub(some_regex)
#=> "5.214
【问题讨论】:
-
如果是这种情况,为什么不直接替换逗号?
-
我可能有一个较长的字符串,其中逗号用于不同的上下文。例如:
I went to the store, and then I bought something for $1,200.我只想替换匹配以下内容的逗号:\d,\d -
如果字符串中还有小数点,那会混淆。如果您想将语言环境更改为使用
.数千的语言,那么您是在问一个 XY 问题。与从头开始尝试相比,使用语言环境库可能会为您提供更强大的解决方案。