<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            php語言

            PHP判斷表達式中括號是否匹配

            時間:2025-04-17 10:10:52 php語言 我要投稿

            PHP判斷表達式中括號是否匹配

              學習PHP語言的時候,初學者往往會對數組感到一些棘手。不過在通過深入的學習之后,我們會發現,這些其實并沒有想象中的困難。下面小編就為大家帶來一篇PHP判斷表達式中括號是否匹配的簡單實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。

              復制代碼 代碼如下:

              <table>

              <tr><td>aaaa</td></tr>

              <tr><td>bbbb</td></tr>

              <tr><td>cccc</td></tr>

              <tr><td>dddd</td></tr>

              </table>

              像這種的文本,用PHP的正則表達式怎么匹配??

              我最初的想法:

              pattern:"/<tr>[.n]*?</tr>"(這個是錯誤的)

              想法思路:"."能匹配任意非換行字符,使用"[.n]"組合,使其能夠匹配所有的字符(包括換行符),但天有不測風云啊——悲劇了,結果什么都沒有!

              經過一番啃骨之后寫了另一個

              pattern:"/<tr>(.|n)*?</tr>"(這個是可以)

              將“[]”換成"()",使用“|”做一個或選擇,這樣就行了(納悶了,怎么"[]"也是選擇方式的就不行???)

              網上也有一答案:

              PATTEN: "/<tr>.*?</tr>/is"(很簡潔很方便,贊成此方法)

              后記: 怎么"[]"也是選擇方式的就不行???你知道的話別忘了告訴小弟一聲哦……

              []里的.相當于.,仔細看正則的說明去吧

              涉及到換行一般考慮用模式修正符s

              s (PCRE_DOTALL)

              如果設置了這個修飾符, 模式中的點號元字符匹配所有字符, 包含換行符. 如果沒有這個 修飾符, 點號不匹配換行符.

              []里面的是一些范圍或者組合

              lz試一下"/<tr>[.]*?</tr>/is"這個就知道了,

              還有()很強大的</p

              如下所示:

              <?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);

              ?>

              頁面信息:

              ?

              1

              2

              3

              缺少右括號)

              表達式匹配

              缺少左括號(

            【PHP判斷表達式中括號是否匹配】相關文章:

            PHP判斷表達式中括號是否匹配的簡單實例05-31

            判斷PHP數組是否為空的代碼08-26

            PHP如何判斷數組是否為空07-26

            PHP正則匹配中文字母數字正則的表達式07-14

            PHP正則匹配中文字母數字正則表達式09-25

            PHP判斷遠程url是否有效的幾種方法09-27

            PHP中判斷變量為空的方法06-18

            PHP判斷數組是否為空的5大方法10-16

            php判斷一個數組是否為有序09-04

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院