正则表达式货币错误

时间:2012-12-28 06:20:03

标签: regex vb.net currency

我有一个大问题,我用这些代码生成货币数字,

Dim reg = New Regex("\d+")
Dim str As String = dZ.Rows(y).Item(14).ToString().Replace(",", ""). _
                               Replace(".00", "").Replace("$", "").Trim
Dim match = reg.Match(str)
If match.Success Then
    str = reg.Replace(str, Decimal.Parse(match.Value).ToString("C"))
End If

是的,它有效,但如果我的金额是:

1,900.50 POC

1 个答案:

答案 0 :(得分:1)

kelvzy你的解决方案不是很灵活。我会建议我的解决方案:

string cellValue = dZ.Rows[y][14];
string cleanedCellValue = Regex.Replace(s, @"\s[^\d.,]+", ""); 
//this will replace everything after the last digit

string decimalValue = Convert.ToDecimal(cleanedCellValue, CultureInfo.InvariantCulture);
string str = decimalValue.ToString("C");

当每个单元格使用逗号作为千位分隔符,点作为小数分隔符,任何符号作为货币符号时,此解决方案将起作用。

在其他情况下请给我更多例子