PHP preg_split 函式

PHP preg_split 函式利用正規表示式,切割一個字串,成為許多不同的部分,可以設定要字串分割後的總數量,使用方法與 split 很類似,但多增加了其他項目的參數設定(第四個參數),且自從 PHP 5.3.0 開始,preg_split 函式已經取代 split 函式,成為利用正規表示法切割字串的常用函式。字串經過 preg_split 函式切割後,最終回傳一個新的 PHP 陣列

PHP preg_split 基本語法

array preg_split ( string $pattern , string $subject , int $limit , int $flags )


第一個參數 $pattern 是正規表示,在此設定要用何種正規表示語法做為字串分割的依據,第二個參數 $subject 就是原始字串,也就是即將被分割的字串。第三個參數 $limit 用來設定分割後的單位總數量,整數,可以不填寫,預設值為 -1,也就是沒有分割限制,如果有設定 $limit,則 preg_split 函式會根據 $pattern 把整個字串分割,分割出來的單位數量如果到達 $limit 的限制,就會停止分割,最後一個分割區段包含至字串最尾。第四個參數 $flags 就是 preg_split 函式的一大重點,也是選擇項目,可以的值如下:
  • PREG_SPLIT_NO_EMPTY - preg_split 函式只會返回非空白的部分。
  • PREG_SPLIT_DELIM_CAPTURE - preg_split 函式會將字串中的正規表達式一起返回。
  • PREG_SPLIT_OFFSET_CAPTURE - preg_split 函式會將每個返回增加字串的偏移量。
PHP 4.0.5 新增 PREG_SPLIT_DELIM_CAPTURE 標記。
PHP 4.3.0 新增 PREG_SPLIT_OFFSET_CAPTURE 標記。

PHP preg_split 範例
<?php
//根據空格切開
$NewString1 = preg_split("/[\s,]+/", "Welcome to Wibibi.Have a good day.");
print_r($NewString1);

echo '<br>';

//把每個英文字母切開
$NewString2 = 'Welcome';
$NewString2 = preg_split('//', $NewString2, -1, PREG_SPLIT_NO_EMPTY);
print_r($NewString2);
?>
以上範例輸出結果
Array ( [0] => Welcome [1] => to [2] => Wibibi.Have [3] => a [4] => good [5] => day. )
Array ( [0] => W [1] => e [2] => l [3] => c [4] => o [5] => m [6] => e )
第一個範例輸出相當的單純,只用了正規參數以及原始字串,讓 preg_split 函式直接將每個空格切開並完成陣列,第二個範例就增加了其他的參數,包含 $limit=-1 以及 PREG_SPLIT_NO_EMPTY,若你對於正規表示不太清楚,可以參考使用比較簡單的 explode 函式。

相關主題研究
© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012