2013-04-24 45 views
4

我想匹配其中有多个逗号的值。我只能用1个逗号来匹配数值。正则表达式:(\$\d+\,\d+)示例值:$567,76但我需要匹配此值$567,76,87,但此正则表达式不起作用。多个逗号的匹配价格

回答

6

尝试这种模式,也许它可以帮助。

^\$\d+(,\d+)*$ 

这将匹配

$567 
$567,76 
$567,76,87 

但不

$567,76,87, 
+0

谢谢,但如果我有这种价值'$ 1,095.00'? – 2013-04-24 07:13:55

+1

试试这个,'^ \ $ \ d {1,3}(,\ d {3})*(\。\ d {1,2})?$'和[这里是演示](http://小提琴.RE/fn2h6) – 2013-04-24 07:20:58

1

您可以分析使用double.Parse(currency, NumberStyles.Currency)值而不是使用正则表达式。

1

试试这个;

^\$\d+(,\d+)+$ 

一些随机匹配;

$1622,40,749 
$37,5844 

Regex r = new Regex(@"^\$\d+(,\d+)+$"); 

string[] partNumbers = { "$567,76", "$567,76,87", "$567,76,87," }; 
foreach (var i in partNumbers) 
{ 
     Console.WriteLine("{0} {1} a valid part number.", i, r.IsMatch(i) ? "is" : "is not"); 
} 

$567,76 is a valid part number. 
$567,76,87 is a valid part number. 
$567,76,87, is not a valid part number. 

这里是一个DEMO