">
当前位置:   article > 正文

php判断字符串中前后括号是否匹配_php查找字符串中的括号

php查找字符串中的括号
思路:将字符串内的括号分为前括号和后括号,匹配到前括号则直接存储到数组中,匹配到后括号,则跟之前存储的前括号中最后一个括号进行对比,如果匹配,则删除前括号中的最后一个匹配的括号,如果不匹配,则报错。

  1. <?php
  2. header("Content-type:text/html;charset=utf-8");
  3. $str = '[()()()434()(4232344}(14))]';
  4. $farr = array('(','[','{');
  5. $larr = array(')',']','}');
  6. $tarr = array();
  7. $res = '';
  8. for ($i = 0;$i < strlen($str);$i++){
  9. // 如果字母在数组中
  10. if (in_array($str[$i], $farr)){
  11. $tarr[] = $str[$i];
  12. }
  13. if (in_array($str[$i], $larr)){
  14. $last = end($tarr);
  15. //如果出现一对括号不匹配则报错
  16. if (($last == '(' && $str[$i] == ')') || ($last == '[' && $str[$i] == ']') || ($last == '{' && $str[$i] == '}')){
  17. array_pop($tarr);
  18. }else{
  19. $res = $str[$i];
  20. break;
  21. }
  22. }
  23. }
  24. if ($tarr || $res){
  25. echo $str.'<br>';
  26. echo '括号不匹配<br>错误提示:';
  27. echo $res?$res:end($tarr);
  28. }else{
  29. echo '括号全部匹配';
  30. }
  31. // print_r($res);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/868333
推荐阅读
相关标签
  

闽ICP备14008679号