用regex-replace替换0.00的美元金额

时间:2013-12-15 05:34:45

标签: asp.net regex vb.net replace

看起来很简单,但我遇到了一个问题,想出一个很好的方法来做到这一点。这应该可以在.NET VB中使用regex.replace ...对不起,但我是Regex的新手......

我有一个包含销售收据的长字符串....我不想在某些情况下显示美元金额,所以我想在显示字符串之前用0.00替换所有金额。即

原始字符串:

订单详情:     第一项         1 @ $ 33.99 $ 33.99     第二项         100 @ $ 3.99 $ 399.00     第三项         10 @ $ 333.99 $ 3339.90     小计:33333.99     运费:10.27     税:0.00     总计:444444.26

替换后

订单详情:     第一项         1 @ $ 0.00 $ 0.00     第二项         100 @ $ 0.00 $ 0.00     第三项         10 @ $ 0.00 $ 0.00     小计:0.00     运费:0.00     税:0.00     总计:0.00

谢谢, 托德。

4 个答案:

答案 0 :(得分:2)

<强>正则表达式

\d+\.\d{2}

Regular expression visualization

Debuggex Demo

<强>描述

这将找到您的所有数字,然后只需用0.00替换

如果您想要找到$符号的内容,则下面的正则表达式也是正确的:

^[+-]?[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2}$

这会找到3个包含,的组,但这不是您的示例所示。

答案 1 :(得分:1)

见:

What is "The Best" U.S. Currency RegEx?

替换此表达式:[+-]?[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2},您将获得所需内容。

答案 2 :(得分:1)

这应该可以解决问题。

Regex.Replace(input, "[0-9]+\.[0-9]{2}", "0.00");

见工作demo

答案 3 :(得分:0)

将此模式(\$)[\d.]+|(otal:)\s*[\d.]+g选项一起使用 并替换为$1$2 0.00 Demo