如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?php
/**
* 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 );
?>
|
页面信息:
1
2
3
|
缺少右括号)
表达式匹配
缺少左括号(
|
以上就是小编为大家带来的PHP判断表达式中括号是否匹配的简单实例全部内容了,希望大家多多支持服务器之家~