首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在PHP中判断一个字符串是否是数学语句?

如何在PHP中判断一个字符串是否是数学语句?
EN

Stack Overflow用户
提问于 2012-03-22 22:43:23
回答 4查看 1.9K关注 0票数 4

我有一个实例的字符串:

"2 + 2 - 2",当它被计算时,应该返回int(2)

我正在寻找一个函数/解析器,它可以确定字符串中是否匹配任何类型的数学内容。更多示例:

代码语言:javascript
运行
复制
"(2 + 2) / 2"
"(4 / 8) * 12"
"128 * 8"

不需要计算和计算这些数学表达式,只需要一个函数,它将确定(True/False返回值),如果语句是这种数学类型。

使用正则表达式或其他什么方法可以实现吗?谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-22 22:49:20

参见eval。例如,您可以这样做:

代码语言:javascript
运行
复制
$result = INF;
try { 
  eval("$result=" + myMathExpression);  // Evaluate here
} catch (Exception $e) { 

} 
if($result != INF) echo("Expression is a valid mathematical expression.");

小心点,因为任何代码都会被评估!

票数 0
EN

Stack Overflow用户

发布于 2012-03-22 22:47:55

也许在运行时将其作为php运行,并检查响应值是否返回为数字。看看这个。http://php.net/manual/en/function.eval.php

票数 1
EN

Stack Overflow用户

发布于 2012-03-22 22:51:19

如果您知道要解析的表达式类型,可以尝试使用正则表达式。如果您正在尝试验证+*-\的二元运算符,那么像^\d+\s*(\+|-|\*|\\)\s*\d+这样的代码应该会产生true。因此它将验证诸如3 + 32 - 0等项。

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

https://stackoverflow.com/questions/9824552

复制
相关文章

相似问题

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