Regex 0-200.0000范围的正则表达式(包括0和200)
我正在尝试编写正则表达式,它接受介于Regex 0-200.0000范围的正则表达式(包括0和200),regex,max,decimal,Regex,Max,Decimal,我正在尝试编写正则表达式,它接受介于0和200.0000之间的数字 ^(?:(?:[1-9]?[0-9]|1[0-9]{2})(?:\.[0-9]{1,4})?|200(?:\.0{1,4})?)$ 我现在设法写了这篇文章: ^([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|200){1}(\.[0-9]{1,4})?$ 但问题是我的表达式接受像200.0001或更大的数字 如果小数点后的数字是200,您知道如何设置小数点后的数字限制吗?感谢问题在于(\.[0-9]{1
0
和200.0000
之间的数字
^(?:(?:[1-9]?[0-9]|1[0-9]{2})(?:\.[0-9]{1,4})?|200(?:\.0{1,4})?)$
我现在设法写了这篇文章:
^([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|200){1}(\.[0-9]{1,4})?$
但问题是我的表达式接受像200.0001
或更大的数字
如果小数点后的数字是
200
,您知道如何设置小数点后的数字限制吗?感谢问题在于(\.[0-9]{1,4})
匹配一个可选的点序列和0
,1
,11
,111
和200
之后的任意四位数字。您需要对200
之前的数字使用(\.[0-9]{1,4})
,对200
使用(\.0{1,4})
^(?:(?:[1-9]?[0-9]|1[0-9]{2})(?:\.[0-9]{1,4})?|200(?:\.0{1,4})?)$
看
我建议使用非捕获组而不是捕获组(即,将(…)
转换为(?:…)
),因为您以后不会使用这些部分
我看到你的模式是自动的,所以我决定“缩小”它一点
图案细节
-字符串的开头^
-开始匹配两个备选方案的非捕获组:(?:
:(?:[1-9]?[0-9]| 1[0-9]{2})(?:\[0-9]{1,4})?
-从(?:[1-9]?[0-9]| 1[0-9]{2})
到1
的可选数字,然后是任意1位,或9
后跟任意两位1
-点的可选序列,后跟一到四个任意数字(?:\.[0-9]{1,4})
-或|
-200(?:\.0{1,4})
后接1或0次200
后接1到4个零
-组和字符串的结尾)$
[0-9]{1,4}
。使用0{1,4}
。如果要匹配200
之前小数部分中的任何数字,您需要为200
和以前的可选项设置两个不同的可选组。请参阅^(?(?:[1-9]?[0-9]?[0-9]{2})(?:\[0-9]{1,4});[200(?:\.0{1,4})$
()。很高兴它对您有用。如果我的回答证明对你有帮助(请参阅),你也可以考虑投票,因为在达到15个代表点后你有权获得投票权。注意:你可以投票选出所有有帮助的答案。