首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解数字范围的正则表达式

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

Stack Overflow用户
提问于 2011-01-26 15:12:16
回答 2查看 20.7K关注 0票数 5

我正在尝试构建一些正则表达式来验证一些textbox控件。我已经做了一些研究和测试,但不能让这个工作。我试图为其创建正则表达式的例子如下:

  1. 范围0-45,0小数位位
  2. 范围0-20,2位小数位
  3. 范围16-65,0小数位位
  4. 范围0-99,2位小数位位

h 19范围0-1500000,0小数位位<H 111范围0-200,小数位1小数位g 213/code>

对于1和5,我分别使用了

代码语言:javascript
复制
([0-9]|[0-9]\d|45)$  
([0-9]|[0-9]\d|1500000)$  

我遇到的第一个问题是年龄范围为16-65 (含),我不想小数点。在这里发布了一篇文章(Regular expression to allow numbers between -90.0 and +90.0)之后,我认为我可以使用逻辑,并得到它的研究,但不能!

我要说的是:

代码语言:javascript
复制
(\d|([1-6][6-4]))|65  

有人能告诉我我在哪里误解这件事吗?对上述其他例子的任何帮助都将被欣然接受。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-26 15:25:01

很抱歉这么说,但你的雷克斯都不起作用。请记住,正则表达式的设计是为了匹配文本数据。虽然可以使用它们来匹配数字,但它并不是真正的选择工具。

如果必须使用正则表达式,则需要考虑数字范围的可能文本表示形式。

对于示例1,这将是:

  1. 要么是单数的
  2. ,要么是介于1到3之间的数字,后面是任何数字的
  3. 或4,后面是0到5之间的数字。

作为一种准则:

代码语言:javascript
复制
^(?:\d|[1-3]\d|4[0-5])$

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

对于示例3,

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

作为一种准则:

代码语言:javascript
复制
^(?:1[6-9]|[2-5]\d|6[0-5])$

对于示例5

  1. 1-5位数字
  2. 或a 1,后面是0-4,然后是任何四位数字
  3. 或150000.

作为一种准则:

代码语言:javascript
复制
^(?:\d{1,5}|1[0-4]\d{4}|150000)$

诸若此类。

添加小数位并不是很困难:

  • \.\d{2}适用于小数点1到3位的小数点places
  • \.\d{1,3}和小数0到2位的
  • (?:\.\d{1,2}) (只有在至少有一位数字跟随时才允许点)。
票数 8
EN

Stack Overflow用户

发布于 2011-01-26 15:18:30

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]

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4806138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档