使用千位分隔符装饰字符串内的数字

时间:2014-12-29 13:19:48

标签: c# regex string

A有一个包含一个或多个数字的字符串。这些数字通常是整数,但在某些时候也可以预期十进制。我正在寻找一种解决方案,将千位分隔符(。或者)添加到字符串中的所有数字。

例如

  1. 100000 - > ?100000?
  2. ?100000?50000 - > ?100000?50000
  3. X10000.5? - > X100,00.5?
  4. 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

纯正则表达式中的hacky解决方案是替换

的所有出现
(?<=\d)(\d{3})(?!\d)

,$1。当然,这非常有限,因为它只为每个数字添加一个分隔符,并且还在逗号后添加分隔符。 See regex101 demo.


更清晰的解决方案是使用\d+(?:\.\d+)?等正则表达式搜索数字,将每个匹配项转换为数字,然后将格式化的数字重新插入文本中。

(你不得不原谅我不包括任何代码,但我还没有用C#编写代码。)