PHP正则表达式与自我比较

时间:2013-06-29 09:24:12

标签: php regex comparison

我不确定这是否可能,但......

对于字符串

2-3

是否可以构造一个正则表达式来检查第一部分是否小于第二部分?

同样,是否可以构造一个正则表达式来检查第一部分是否大于第二部分?或者如果他们是平等的?

我知道我可以使用爆炸并手动完成,但我希望有一个更优雅的解决方案。

有什么想法吗?

谢谢。

3 个答案:

答案 0 :(得分:2)

你不能只使用正则表达式,你需要使用正则表达式将字符串解析为单独的部分,然后使用语言逻辑来执行其余部分。例如。

$string = "2-3";
$regexp = "/([0-9]+)[+-\/\*]([0-9]+)/";
preg_match($regexp, $string, $matches);

解析字符串后

if ($matches[1] > $matches[2]) { } 

答案 1 :(得分:0)

正则表达式的目的只是为了匹配某些模式,它包含完全匹配的运算符,使用字符串。

如果比较数字,则使用一些数学运算符,因此应使用编程语言执行此类操作。为什么?因为数学运算应该适用于intfloat等类型的数据。

Regex将帮助您从字符串中提取所需的数据 - >使用默认工具来利用数据。

答案 2 :(得分:0)

如果字符串始终采用该格式,则实际上不需要RegEx

$string = "2-3"; 
$firstGreater = (int) $string[0] > (int) $string[2];