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.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);
?>
以上範例輸出結果//根據空格切開
$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 函式。Array ( [0] => W [1] => e [2] => l [3] => c [4] => o [5] => m [6] => e )
相關主題研究