理解数字范围的正则表达式
我正在尝试构建一些正则表达式来validation一些文本框控件。 我做了一些研究和测试,但不能让这个工作。 我试图创建正则表达式的示例如下:
- 范围0-45,0位小数
- 范围0-20,小数点后2位
- 范围16-65,小数点后0位
- 范围0-99,小数点后2位
- 范围0-1500000,0小数位
- 范围0-200,小数点后1位
分别为1和5,我用过
([0-9]|[0-9]d|45)$ ([0-9]|[0-9]d|1500000)$
我遇到问题的第一个是年龄范围16-65(含),我想要没有小数位。 在这里发帖后( 正则表达式允许数字在-90.0和+90.0之间 )我以为我可以使用逻辑并让它怀疑,但不能!
我得到的表达是:
(d|([1-6][6-4]))|65
有人可以告诉我,我误解了这个! 如果对上述其他例子有任何帮助,我们将非常感激。
很抱歉这样说,但你的正则表达不会起作用。 请记住,正则表达式旨在匹配文本数据。 虽然可以使用它们来匹配数字,但它并不是真正的选择工具。
如果必须使用正则表达式,则需要考虑数字范围的可能文本表示。
对于您的示例1 ,那将是:
- 要么是一个数字
- 或1到3之间的数字,后跟任何数字
- 或4,然后是0到5之间的数字。
正如一个正则表达式:
^(?:d|[1-3]d|4[0-5])$
^
和$
anchors确保评估整个字符串; (?:...)
对交替进行分组,并将其与锚点“屏蔽”。
对于你的例子3 :
- 要么是1,要么是6-9
- 或2-5,然后是任何数字
- 或者是6,然后是0-5
正如一个正则表达式:
^(?:1[6-9]|[2-5]d|6[0-5])$
对于你的例子5 :
- 1-5位数
- 或1,然后是0-4,然后是任意四位数
- 或150000。
正如一个正则表达式:
^(?:d{1,5}|1[0-4]d{4}|150000)$
等等。
添加小数位并不是很困难:
16 - 65
包括16 - 65
的逻辑是1 plus 6-9 OR 2-5 plus 0-9 OR 6 plus 0-5
。
我认为这将是1[6-9]|[2-5][0-9]|6[0-5]
上述就是C#学习教程:理解数字范围的正则表达式分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1043453.html