久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      php 正則表達(dá)式的子模式詳解

      首先,我們先看一段PHP代碼:

      復(fù)制代碼 代碼如下:
      <?php
      $time = date (“Y-m-d H:i:s”);
      $pattern = “/d{4}-d{2}-d{2} d{2}:d{2}:d{2}/i”;
      if(preg_match($pattern,$time,$arr)){
      echo “<pre>”;
      print_r($arr);
      echo “</pre>”;
      }
      ?>

      顯示結(jié)果:

      復(fù)制代碼 代碼如下:
      Array
      (
      [0] => 2012-06-23 03:08:45
      )

      有沒有注意到,顯示的結(jié)果只有一條數(shù)據(jù),即符合匹配模式的時(shí)間格式,那如果只有一條記錄的話,為什么還要用數(shù)組保存呢?直接使用字符串保存不是更好?

      帶著這個(gè)問題,我們來看下正則表達(dá)式中的子模式。

      在正則表達(dá)式中,可以使用“(”和“)”將模式中的子字符串括起來,以形成一個(gè)子模式。將子模式視為一個(gè)整體時(shí),那么它就相當(dāng)于一個(gè)單個(gè)字符。

      比如,我們將以上的代碼稍微修改下,改成如下:

      復(fù)制代碼 代碼如下:
      <?php
      $time = date (“Y-m-d H:i:s”);
      $pattern = “/(d{4})-(d{2})-(d{2}) (d{2}):(d{2}):(d{2})/i”;
      if(preg_match($pattern,$time,$arr)){
      echo “<pre>”;
      print_r($arr);
      echo “</pre>”;
      }
      ?>

      注意:我只修改了$pattern,在匹配模式中,使用了括號(hào)()

      執(zhí)行結(jié)果:

      復(fù)制代碼 代碼如下:
      Array
      (
      [0] => 2012-06-23 03:19:23
      [1] => 2012
      [2] => 06
      [3] => 23
      [4] => 03
      [5] => 19
      [6] => 23
      )

      總結(jié):我們可以使用小括號(hào)給整個(gè)匹配模式進(jìn)行分組,默認(rèn)情況下,每個(gè)分組會(huì)自動(dòng)擁有一個(gè)組號(hào),規(guī)則是,從左到右,以分組的左括號(hào)為標(biāo)志,第一個(gè)出現(xiàn)的分組為組號(hào)1,第二個(gè)為組號(hào)2,以此類推。其中,分組0對(duì)應(yīng)整個(gè)正則表達(dá)式。對(duì)整個(gè)正則匹配模式進(jìn)行了分組以后,就可以進(jìn)一步使用“向后引用”來重復(fù)搜索前面的某個(gè)分組匹配的文本。例如:1代表分組1匹配的文本,2代表分組2匹配的文本等等我們可以進(jìn)一步修改下代碼,如下所示:

      復(fù)制代碼 代碼如下:
      <?php
      $time = date (“Y-m-d H:i:s”);
      $pattern = “/(d{4})-(d{2})-(d{2}) (d{2}):(d{2}):(d{2})/i”;
      $replacement = “$time格式為:$0<BR>替換后的格式為:\1年\2月\3日 \4時(shí)\5分\6秒”;
      print preg_replace($pattern, $replacement, $time);
      if(preg_match($pattern,$time,$arr)){
      echo “<pre>”;
      print_r($arr);
      echo “</pre>”;
      }
      ?>

      注意:

      因?yàn)槭窃陔p引號(hào)中,所以使用分組的時(shí)候應(yīng)該使用兩個(gè)反斜杠,如:\1,而如果在單引號(hào)中,則使用一個(gè)反斜杠就可以了,如:1
      \1用于捕獲分組一種的內(nèi)容:2012,\6用于捕獲分組6中的內(nèi)容          
      執(zhí)行結(jié)果:

      $time格式為:2012-06-23 03:30:31
      替換后的格式為:2012年06月23日 03時(shí)30分31秒

      復(fù)制代碼 代碼如下:
      Array
      (
      [0] => 2012-06-23 03:30:31
      [1] => 2012
      [2] => 06
      [3] => 23
      [4] => 03
      [5] => 30
      [6] => 31
      )
      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)