C#中带有小数点和逗号的数字的正则表达式

Ste*_*n L 0 c# regex

我需要在文本框中输入金额,该文本框允许带小数点和逗号的数字.这是什么正则表达式?

我用下面的

txtInitialAmountGuarDetails.ValidationSettings.RegularExpression.ValidationExpression = @"^[-+]?\d*[0-9](|.\d*[0-9])(|,\d*[0-9])?$";

但它不适用于像300,000,000,000,000这样的大数字.

Eri*_*low 7

零碎地构建它.鉴于美国语言环境,具有这些规则的数字按顺序排列:

  • 字符串开头: ^
  • 一个可选的标志: [+-]?
  • 最多3位数: \d{1,3}
  • 逗号后跟3位数,重复任意次: (?:,\d{3})*
  • 可选的小数点和小数部分: (?:[.]\d+)?
  • 字符串结束: $

你对小数点后的位数有限制吗?然后将最后一个加号更改为{ 2}2位数.

所以,正则表达式是:

@"^[+-]?\d{1,3}(?:,\d{3})*(?:[.]\d+)?$"
Run Code Online (Sandbox Code Playgroud)

或者,如果您想解释您的工作,请使用以下x选项:

@"(?x)            # Extended format.
  ^[+-]?          # Optional sign.
  \d{1,3}         # Initial 1-3 digits.
  (?:,\d{3})*     # Any number of commas followed by 3 digits.
  (?:[.]\d+)?$"   # An optional decimal point followed by any number of digits.
Run Code Online (Sandbox Code Playgroud)

但是C#是否已经具有依赖于语言环境的验证器?