我正在尝试构建符合以下条件的正则表达式。你能告诉我一个解决方案。
我尝试过:^[0-9]+(\.[0-9]{1,2})?$
它按预期工作但现在我想添加一个模式,将字符大小限制为最多10(最大),包括文本框中的句点('。')。
验收标准值(当字符长度为6时):
.5
,0.5
,1.2
,33.33
,123.45
拒绝标准值(当字符长度为6时):
.5.0
,-0.5
,2.333
,122.456
,1234.56
(拒绝,因为长度为7,包括点('。')
答案 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)
谢谢,
我得到的答案就像分成两个正则表达式。一个用于数字验证,另一个用于长度验证。如果两个条件匹配,那么它被认为已被接受。
感谢您提出的宝贵建议。
纳温