pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

    1. <i id='7xbs4'><tr id='7xbs4'><dt id='7xbs4'><q id='7xbs4'><span id='7xbs4'><b id='7xbs4'><form id='7xbs4'><ins id='7xbs4'></ins><ul id='7xbs4'></ul><sub id='7xbs4'></sub></form><legend id='7xbs4'></legend><bdo id='7xbs4'><pre id='7xbs4'><center id='7xbs4'></center></pre></bdo></b><th id='7xbs4'></th></span></q></dt></tr></i><div class="zn33zhz" id='7xbs4'><tfoot id='7xbs4'></tfoot><dl id='7xbs4'><fieldset id='7xbs4'></fieldset></dl></div>

      <tfoot id='7xbs4'></tfoot>

        <small id='7xbs4'></small><noframes id='7xbs4'>

        • <bdo id='7xbs4'></bdo><ul id='7xbs4'></ul>
      1. <legend id='7xbs4'><style id='7xbs4'><dir id='7xbs4'><q id='7xbs4'></q></dir></style></legend>
      2. PHP:在逗號上拆分字符串,但不在大括號或引號之

        PHP: split string on comma, but NOT when between braces or quotes?(PHP:在逗號上拆分字符串,但不在大括號或引號之間?)
          <i id='4zNAB'><tr id='4zNAB'><dt id='4zNAB'><q id='4zNAB'><span id='4zNAB'><b id='4zNAB'><form id='4zNAB'><ins id='4zNAB'></ins><ul id='4zNAB'></ul><sub id='4zNAB'></sub></form><legend id='4zNAB'></legend><bdo id='4zNAB'><pre id='4zNAB'><center id='4zNAB'></center></pre></bdo></b><th id='4zNAB'></th></span></q></dt></tr></i><div class="zntxld3" id='4zNAB'><tfoot id='4zNAB'></tfoot><dl id='4zNAB'><fieldset id='4zNAB'></fieldset></dl></div>
            <tbody id='4zNAB'></tbody>
              • <bdo id='4zNAB'></bdo><ul id='4zNAB'></ul>

              • <tfoot id='4zNAB'></tfoot>

                <legend id='4zNAB'><style id='4zNAB'><dir id='4zNAB'><q id='4zNAB'></q></dir></style></legend>

                  <small id='4zNAB'></small><noframes id='4zNAB'>

                  本文介紹了PHP:在逗號上拆分字符串,但不在大括號或引號之間?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  在 PHP 中,我有以下字符串:

                  In PHP I have the following string :

                  $str = "AAA, BBB, (CCC,DDD), 'EEE', 'FFF,GGG', ('HHH','III'), (('JJJ','KKK'), LLL, (MMM,NNN)) , OOO"; 
                  

                  我需要將此字符串拆分為以下部分:

                  I need to split this string into the following parts:

                  AAA
                  BBB
                  (CCC,DDD)
                  'EEE'
                  'FFF,GGG'
                  ('HHH','III')
                  (('JJJ','KKK'),LLL, (MMM,NNN))
                  OOO
                  

                  我嘗試了幾個正則表達式,但找不到解決方案.有什么想法嗎?

                  I tried several regexes, but couldn't find a solution. Any ideas?

                  更新

                  在處理格式錯誤的數據、轉義引號等時,我認為使用正則表達式并不是最好的解決方案.

                  I've decided using regex is not really the best solution, when dealing with malformed data, escaped quotes, etc.

                  感謝這里提出的建議,我找到了一個使用解析的函數,我重新編寫了它以滿足我的需要.它可以處理不同類型的括號,分隔符和引號也是參數.

                  Thanks to suggestions made on here, I found a function that uses parsing, which I rewrote to suit my needs. It can handle different kind of brackets and the separator and quote are parameters as well.

                   function explode_brackets($str, $separator=",", $leftbracket="(", $rightbracket=")", $quote="'", $ignore_escaped_quotes=true ) {
                  
                      $buffer = '';
                      $stack = array();
                      $depth = 0;
                      $betweenquotes = false;
                      $len = strlen($str);
                      for ($i=0; $i<$len; $i++) {
                        $previouschar = $char;
                        $char = $str[$i];
                        switch ($char) {
                          case $separator:
                            if (!$betweenquotes) {
                              if (!$depth) {
                                if ($buffer !== '') {
                                  $stack[] = $buffer;
                                  $buffer = '';
                                }
                                continue 2;
                              }
                            }
                            break;
                          case $quote:
                            if ($ignore_escaped_quotes) {
                              if ($previouschar!="\") {
                                $betweenquotes = !$betweenquotes;
                              }
                            } else {
                              $betweenquotes = !$betweenquotes;
                            }
                            break;
                          case $leftbracket:
                            if (!$betweenquotes) {
                              $depth++;
                            }
                            break;
                          case $rightbracket:
                            if (!$betweenquotes) {
                              if ($depth) {
                                $depth--;
                              } else {
                                $stack[] = $buffer.$char;
                                $buffer = '';
                                continue 2;
                              }
                            }
                            break;
                          }
                          $buffer .= $char;
                      }
                      if ($buffer !== '') {
                        $stack[] = $buffer;
                      }
                  
                      return $stack;
                    }
                  

                  推薦答案

                  代替 preg_split,做一個 preg_match_all:

                  $str = "AAA, BBB, (CCC,DDD), 'EEE', 'FFF,GGG', ('HHH','III'), (('JJJ','KKK'), LLL, (MMM,NNN)) , OOO"; 
                  
                  preg_match_all("/((?:[^()]|(?R))+)|'[^']*'|[^(),s]+/", $str, $matches);
                  
                  print_r($matches);
                  

                  將打印:

                  Array
                  (
                      [0] => Array
                          (
                              [0] => AAA
                              [1] => BBB
                              [2] => (CCC,DDD)
                              [3] => 'EEE'
                              [4] => 'FFF,GGG'
                              [5] => ('HHH','III')
                              [6] => (('JJJ','KKK'), LLL, (MMM,NNN))
                              [7] => OOO
                          )
                  
                  )

                  正則表達式 ((?:[^()]|(?R))+)|'[^']*'|[^(),s]+ 可以分為三部分:

                  The regex ((?:[^()]|(?R))+)|'[^']*'|[^(),s]+ can be divided in three parts:

                  1. ((?:[^()]|(?R))+),匹配括號的平衡對
                  2. '[^']*' 匹配一個帶引號的字符串
                  3. [^(),s]+ 匹配任何不包含 '(', ')' 的字符序列,',' 或空白字符
                  1. ((?:[^()]|(?R))+), which matches balanced pairs of parenthesis
                  2. '[^']*' matching a quoted string
                  3. [^(),s]+ which matches any char-sequence not consisting of '(', ')', ',' or white-space chars

                  這篇關于PHP:在逗號上拆分字符串,但不在大括號或引號之間?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Deadlock exception code for PHP, MySQL PDOException?(PHP、MySQL PDOException 的死鎖異常代碼?)
                  PHP PDO MySQL scrollable cursor doesn#39;t work(PHP PDO MySQL 可滾動游標不起作用)
                  PHP PDO ODBC connection(PHP PDO ODBC 連接)
                  Using PDO::FETCH_CLASS with Magic Methods(使用 PDO::FETCH_CLASS 和魔術方法)
                  php pdo get only one value from mysql; value that equals to variable(php pdo 只從 mysql 獲取一個值;等于變量的值)
                  MSSQL PDO could not find driver(MSSQL PDO 找不到驅動程序)

                  • <small id='bJzQZ'></small><noframes id='bJzQZ'>

                          <tbody id='bJzQZ'></tbody>
                          <bdo id='bJzQZ'></bdo><ul id='bJzQZ'></ul>

                          <tfoot id='bJzQZ'></tfoot>
                        • <i id='bJzQZ'><tr id='bJzQZ'><dt id='bJzQZ'><q id='bJzQZ'><span id='bJzQZ'><b id='bJzQZ'><form id='bJzQZ'><ins id='bJzQZ'></ins><ul id='bJzQZ'></ul><sub id='bJzQZ'></sub></form><legend id='bJzQZ'></legend><bdo id='bJzQZ'><pre id='bJzQZ'><center id='bJzQZ'></center></pre></bdo></b><th id='bJzQZ'></th></span></q></dt></tr></i><div class="tnrlzv1" id='bJzQZ'><tfoot id='bJzQZ'></tfoot><dl id='bJzQZ'><fieldset id='bJzQZ'></fieldset></dl></div>
                          1. <legend id='bJzQZ'><style id='bJzQZ'><dir id='bJzQZ'><q id='bJzQZ'></q></dir></style></legend>
                            主站蜘蛛池模板: 北京公寓出租网-北京酒店式公寓出租平台 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 | 搅拌磨|搅拌球磨机|循环磨|循环球磨机-无锡市少宏粉体科技有限公司 | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | 厌氧工作站-通用型厌氧工作站-上海胜秋科学仪器有限公司 | 内六角扳手「厂家」-温州市威豪五金工具有限公司 | 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 | 亚克隆,RNAi干扰检测,miRNA定量检测-上海基屹生物科技有限公司 | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 薪动-人力资源公司-灵活用工薪资代发-费用结算-残保金优化-北京秒付科技有限公司 | 一点车讯-汽车网站,每天一点最新车讯! | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 扬子叉车厂家_升降平台_电动搬运车|堆高车-扬子仓储叉车官网 | 威海防火彩钢板,威海岩棉复合板,威海彩钢瓦-文登区九龙岩棉复合板厂 | 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 游泳池设计|设备|配件|药品|吸污机-东莞市太平洋康体设施有限公司 | 上海律师咨询_上海法律在线咨询免费_找对口律师上策法网-策法网 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 螺旋绞龙叶片,螺旋输送机厂家,山东螺旋输送机-淄博长江机械制造有限公司 | 成都网站建设制作_高端网站设计公司「做网站送优化推广」 | 重庆小面培训_重庆小面技术培训学习班哪家好【终身免费复学】 | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 广西正涛环保工程有限公司【官网】| 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 保镖公司-私人保镖-深圳保镖公司【环宇兄弟保镖】 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 粒米特测控技术(上海)有限公司-测功机_减速机测试台_电机测试台 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 精密模具加工制造 - 富东懿| 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | 铝箔-铝板-花纹铝板-铝型材-铝棒管-上海百亚金属材料有限公司 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 苏州防水公司_厂房屋面外墙防水_地下室卫生间防水堵漏-苏州伊诺尔防水工程有限公司 |