使用正则表达式查找文字中的钱

时间:2019-01-29 20:27:21

标签: regex currency-formatting

我需要找到一个正则表达式,该正则表达式将从文本中提取任何$,然后提取一个整数,例如$ 200或$ 50或$ 50.00或$ 5,000。 谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试使用this这样的网站来搜索有关诸如金钱之类的特定事物的正则表达式。

我个人喜欢

的正则表达式
new Regex(@"^\-?\(?\$?\s*\-?\s*\(?(((\d{1,3}((\,\d{3})*|\d*))?(\.\d{1,4})?)|((\d{1,3}((\,\d{3})*|\d*))(\.\d{0,4})?))\)?$");

将覆盖以下内容:$ 0、0,(0.0000)、. 1,.01,.0001,$。1,$。01,$。0001,($。1),($。01),$ (.0001),0.1,0.01,0.0001,1.,1111.,1,111。,1,1.00,1,000.00,$ 1,$ 1.00,$ 1,000.00,$ 1.0000,$ 1.0000,$ 1,000.0000,-1,-1.00,-1,000.00, -$ 1,-$ 1.00,-$ 1,000.00,-$ 1,-$ 1.00,-$ 1,000.00,$-1,$-1.00,$-1,000.00,$(1),$(1.00),$(1,000.00),$( 1),$(1.00),$(1,000.00),($ 1),($ 1.00),($ 1,000.00)

答案 1 :(得分:0)

我认为这会起作用:

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

如果您使用https://regex101.com/,则应该能够获得相当不错的解释。基本上,我们从美元符号($)开始,然后检查逗号分隔的整数或非逗号分隔的整数,然后是可选的小数部分。