具有限制字符大小的十进制数的正则表达式

时间:2016-01-25 14:27:27

标签: c# regex

我正在尝试构建符合以下条件的正则表达式。你能告诉我一个解决方案。

我尝试过:^[0-9]+(\.[0-9]{1,2})?$

它按预期工作但现在我想添加一个模式,将字符大小限制为最多10(最大),包括文本框中的句点('。')。

验收标准值(当字符长度为6时):
.50.51.233.33123.45

拒绝标准值(当字符长度为6时):
.5.0-0.52.333122.4561234.56(拒绝,因为长度为7,包括点('。')

2 个答案:

答案 0 :(得分:1)

实现这一目标的一种方法是积极向前看。首先检查条件然后匹配:

string pattern = @"(?x)  (?=^.{1,10}$ ) (^ \d+ (\.\d{1,2})? $) | (^\.\d{1,2}$)";

(?=^.{1,10}$ )是预见,匹配1到10之间的字符串,然后匹配: (^ \d+ (\.\d{1,2})? $)匹配后跟的任何数字。和1或2个其他数字

|或

(^\.\d{1,2}$)匹配。后跟1或2位数

答案 1 :(得分:1)

谢谢,

我得到的答案就像分成两个正则表达式。一个用于数字验证,另一个用于长度验证。如果两个条件匹配,那么它被认为已被接受。

感谢您提出的宝贵建议。

纳温