我正在尝试构建一些正则表达式来验证一些textbox控件。我已经做了一些研究和测试,但不能让这个工作。我试图为其创建正则表达式的例子如下:
h 19范围0-1500000,0小数位位<H 111范围0-200,小数位1小数位g 213/code>
对于1和5,我分别使用了
([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)之后,我认为我可以使用逻辑,并得到它的研究,但不能!
我要说的是:
(\d|([1-6][6-4]))|65 有人能告诉我我在哪里误解这件事吗?对上述其他例子的任何帮助都将被欣然接受。
发布于 2011-01-26 15:25:01
很抱歉这么说,但你的雷克斯都不起作用。请记住,正则表达式的设计是为了匹配文本数据。虽然可以使用它们来匹配数字,但它并不是真正的选择工具。
如果必须使用正则表达式,则需要考虑数字范围的可能文本表示形式。
对于示例1,这将是:
作为一种准则:
^(?:\d|[1-3]\d|4[0-5])$^和$锚点确保计算整个字符串;(?:...)对替换进行分组,并将其与锚“屏蔽”。
对于示例3,
。
作为一种准则:
^(?:1[6-9]|[2-5]\d|6[0-5])$对于示例5
。
作为一种准则:
^(?:\d{1,5}|1[0-4]\d{4}|150000)$诸若此类。
添加小数位并不是很困难:
\.\d{2}适用于小数点1到3位的小数点places\.\d{1,3}和小数0到2位的(?:\.\d{1,2}) (只有在至少有一位数字跟随时才允许点)。发布于 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]
https://stackoverflow.com/questions/4806138
复制相似问题