正则表达式比较两个数字

3

我能否在正则表达式中比较两个数字? 我想要一个正则表达式,当数字为10-12时正确,但是当数字为12-10时不正确。我的意思是10必须小于12。 我想在Javascript中实现。


我认为你需要提供更好的描述或更多的示例来说明你所需的内容。 - RB.
杰夫对这个问题的回答!! - Vijay Dev
正则表达式用于匹配模式,而不是检查数字值。使用正则表达式找到一个可能的字符串,然后在您所使用的主机语言中(如Javascript等)检查其数值。 - Andy Lester
3个回答

15
如果输入始终采用X-Y的形式,那么为什么不使用split()函数将'-'作为分隔符进行分割,然后将两部分进行比较。
不能使用正则表达式来比较数值。

4
感谢您的通灵能力,能够确定提问者真正想要表达的意思。+1。 - Paul Tomblin
3
你可以使用正则表达式提取数字,但无法进行比较。正则表达式并不是万能的问题解决工具。 - Jonathan Leffler
我想我知道他的意思,但是我花了很长时间才能组织出一个回应,而你已经回答了 :) - warren

3

针对这个问题,我不建议使用正则表达式。我会将字符串按运算符拆分成两个数字,然后根据找到的运算符比较这两个数字(我假设10+1212+10都是合法的)。


我的意思是10必须小于12。 - geeeeeeeeeek
正则表达式用于匹配模式,而不是比较值。我会将字符串拆分并使用<或>来比较两个结果数字。 - Bill the Lizard

2
这里的问题在于你试图将两个问题合二为一。
正则表达式非常擅长语法(即识别数字),但在语义(即识别含义)方面却很差。因此,正则表达式肯定可以帮助你识别 x-y,但你要求它进一步推理 xy 之间的关系,这就过于苛刻了。
正如经常引用的那句话:

有些人遇到问题时会想,“我知道,我来用正则表达式。”现在他们有两个问题了。(JWZ

或者说,现在你有三个问题了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接