正则表达式中的可选部分

时间:2013-02-23 22:01:14

标签: c# .net regex

我有以下字符串要处理

Name ( $4 USD )
Name ( $4.1 USD )
Name ( $4.12 USD )
Name ( $4123123.02 USD )

我想从他们身上获得美元 现在我使用follwoing正则表达式

Regex regex = new Regex(@"\( \$(?<cash>\d+\.\d{1,2}) USD \)");

但它与第一​​个例子不匹配。我应该更改什么来使。\ d {1,2}部分可选? 谢谢!

1 个答案:

答案 0 :(得分:3)

Regex regex = new Regex(@"\( \$(?<cash>\d+(?:\.\d{1,2})?) USD \)");

(?:...)是一个非捕获组,以下?使该组可选。