如何使用正则表达式将数字格式化为货币

Pra*_*thi 2 c# regex c#-4.0

我正在尝试使用下面的正则表达式将数字格式化为数量格式.

  var input = "1234567.00"
  var pattern = @"\d(?=(\d{3},?)+\.)";
  var replacement = "$$$&,";

  var output = Regex.Replace(input, pattern, replacement);
Run Code Online (Sandbox Code Playgroud)

这给了我$ 1,23 $ 4,567.00(额外$).

我想在下面

Input:1234567.00 or 1234,567.00 or 1234567 should return $1,234,567.00
Run Code Online (Sandbox Code Playgroud)

请建议正确的.

Acc*_*ied 6

看一下MSDN文档示例:

var input = "1234567.00";
NumberFormatInfo nfi = new CultureInfo( "en-US", false ).NumberFormat;
var currencyValue = decimal.Parse(input);
var output = currencyValue.ToString( "C", nfi );
Run Code Online (Sandbox Code Playgroud)