问题描述
我想进行数字验证。规则是:
- 数字可以以+或-开头,也可以不以数字开头(以正数表示)
- 不能以0开头
- 也可以有一个分数。或,
- 不能以0结尾
因此可接受的数字为:+ 123,-123、123、1023、123.03、123.03。 不可接受的数字是:001、1.000,任意字母
我给您到目前为止我在Dan's Tools上构建的表达式。除小数点后的表达式外,我几乎处理了所有事情。每个帮助都是可以接受的。
表达式:(^(\+|-?)([1-9]+))([0-9]+)(\.|,?)
预先感谢 尼科斯(Nikos)
解决方法
除了模式中缺少的小数部分外,用 IEnumerable<string> result = request
.ApplicationAccess
.CategoryAccessType
.SelectMany(c => c.ApplicationTypes.SelectMany(t => t.RoleAmpLabelAdded))
.Select(r => r.AuthRoleCode);
量词对[1-9]
和[0-9]
进行量化时,正则表达式将不匹配一位数字,至少需要一个字符。
您可以使用
+
详细信息
-
^[+-]?[1-9][0-9]*(?:[.,][0-9]*[1-9])?$
-字符串的开头 -
^
-可选的[+-]?
或+
-
-
-一个非零数字 -
[1-9]
-零个或多个数字 -
[0-9]*
-可选的小数部分:(?:[.,][0-9]*[1-9])?
或.
,然后是零个或多个数字,后跟一个非零数字 -
,
-字符串的结尾。