Csharp/C#教程:理解数字范围的正则表达式分享


理解数字范围的正则表达式

我正在尝试构建一些正则表达式来validation一些文本框控件。 我做了一些研究和测试,但不能让这个工作。 我试图创建正则表达式的示例如下:

  1. 范围0-45,0位小数
  2. 范围0-20,小数点后2位
  3. 范围16-65,小数点后0位
  4. 范围0-99,小数点后2位
  5. 范围0-1500000,0小数位
  6. 范围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. 要么是一个数字
  2. 或1到3之间的数字,后跟任何数字
  3. 或4,然后是0到5之间的数字。

正如一个正则表达式:

 ^(?:d|[1-3]d|4[0-5])$ 

^$ anchors确保评估整个字符串; (?:...)对交替进行分组,并将其与锚点“屏蔽”。

对于你的例子3

  1. 要么是1,要么是6-9
  2. 或2-5,然后是任何数字
  3. 或者是6,然后是0-5

正如一个正则表达式:

 ^(?:1[6-9]|[2-5]d|6[0-5])$ 

对于你的例子5

  1. 1-5位数
  2. 或1,然后是0-4,然后是任意四位数
  3. 或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

(0)
上一篇 2022年1月31日
下一篇 2022年1月31日

精彩推荐