我不确定这是否可能,但是......
对于字符串
2-3
是否可以构造一个正则表达式来检查第一部分是否小于第二部分?
同样,是否可以构造一个正则表达式来检查第一部分是否大于第二部分?或者如果他们是平等的?
我知道我可以使用 explode 并手动完成,但我希望有一个更优雅的解决方案。
有任何想法吗?
谢谢你。
我不确定这是否可能,但是......
对于字符串
2-3
是否可以构造一个正则表达式来检查第一部分是否小于第二部分?
同样,是否可以构造一个正则表达式来检查第一部分是否大于第二部分?或者如果他们是平等的?
我知道我可以使用 explode 并手动完成,但我希望有一个更优雅的解决方案。
有任何想法吗?
谢谢你。
您不能仅使用正则表达式来做到这一点,您需要使用正则表达式将字符串解析为单独的部分,然后使用语言逻辑来执行其余部分。例如。
$string = "2-3";
$regexp = "/([0-9]+)[+-\/\*]([0-9]+)/";
preg_match($regexp, $string, $matches);
一旦你解析了字符串
if ($matches[1] > $matches[2]) { }
正则表达式的目的只是匹配一些模式,它包含完全匹配的运算符,处理字符串。
如果您比较数字,您会使用一些数学运算符,因此您应该使用编程语言来执行此类操作。为什么?因为数学运算应该适用于诸如 等类型的int
数据float
。
正则表达式将帮助您从字符串中提取所需数据 -> 使用默认工具利用数据。
如果字符串始终采用该格式,则确实不需要 RegEx
$string = "2-3";
$firstGreater = (int) $string[0] > (int) $string[2];