正则表达的销售价格

时间:2017-02-28 11:13:30

标签: c# regex devexpress

我想以下列格式显示价格。

  • 100
  • 100,20
  • 1.000,20
  • 11.000,20
  • 111.000,20
  • 1.111.000,20

我已经制作了这个正则表达式\d+(\,\d+)?,但它只输出这些数字:

  • 100
  • 100,20
  • 1000,20
  • 11000,20
  • 1111000,20

我缺少的是千分隔符。我该如何添加?

我已经阅读过这些文章,但仍然没有运气。 MSDN: Regular Expression Language - Quick Reference DevExpress: Mask Type: Extended Regular Expressions

1 个答案:

答案 0 :(得分:2)

您可以使用

\d{1,3}(\.\d{3})*(\R.\d+)?

在这里,

  • \d{1,3} - 匹配1到3位数字
  • (\.\d{3})* - 匹配文字.的0个或更多序列,后跟3个数字
  • (\R.\d+)? - 匹配以下的可选(1或0)序列:
    • \R. - 由当前文化的System.Globalization.NumberFormatInfo.NumberDecimalSeparator属性指定的小数分隔符
    • \d+ - 1+位数

不幸的是,DevExpress验证正则表达式中没有数字分组符号模式,因此您可能希望以与“千位分隔符”相同的方式对小数点分隔符进行硬编码(即\R. - > {{1 }})。