删除货币符号,1000的分隔符并标准化十进制表示法

时间:2019-01-21 10:33:16

标签: c# regex

我正在尝试创建一个正则表达式来删除字符串中接收的财务值的格式。

我已经编写了删除货币符号的代码,但是在删除1000的分隔符时遇到了问题,因为它可以是以下任意一项:, . '

这是我到目前为止所拥有的:

string pattern = @"\p{Sc}*(\s?\d+[.,]?\d*)\p{Sc}*";
string replacement = "$1";
string input = "here are the text values: $16,000.32 12.19 £16.29 €18.000,29  €18,29 ₹17,00,00,00,000.00";
string result = Regex.Replace(input, pattern, replacement);
Console.WriteLine(result);

如何修改代码以替换1000的分隔符并标准化十进制表示法?

1 个答案:

答案 0 :(得分:0)

您可以使用以下模式:(\d)[.,'](\d{3})

说明:如果与[.,']一起列出的任何千位分隔符都以数字开头,然后以三位数字开头,则它将与之匹配。

开头和后面的数字将被捕获到第一和第二个捕获组中,因此您只需将\1\2替换为match,这意味着您省略了分隔符。

注意:如果小数部分的长度超过三位数,也会删除小数点分隔符。