2013-04-24 44 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