如下所示:
<?php
/**
* title: 判断表达式中括号是否匹配
* description: () 匹配 )(不匹配 利用压栈和出栈
* @author mr lv
*/
function isvalid($expstr) {
$temp = array();
for ($i=0; $i<strlen($expstr); $i++) {
$ch = $expstr[$i];
switch($ch) {
case '(':
array_push($temp, '(');
break;
case ')':
if (empty($temp) || array_pop($temp) != '(') {
return "缺少左括号(";
}
}
}
return empty($temp) == true ? "表达式匹配" : "缺少右括号)";
}
$expstra = "(1+3(6*4)-(2+3))()(";
$expstrb = "(1+3(6*4)-(2+3))()";
$expstrc = "(1+3(6*4)-(2+3)))";
echo isvalid($expstra);
echo "<br>";
echo isvalid($expstrb);
echo "<br>";
echo isvalid($expstrc);
?>
页面信息:
缺少右括号)
表达式匹配
缺少左括号(
以上就是小编为大家带来的php判断表达式中括号是否匹配的简单实例全部内容了,希望大家多多支持硕编程~
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!