PHP 要將中文字一個一個切開,有什麼作法呢?
要把中、英文、數字切開,可以怎麼做呢?
PHP 如何將中文、英文、數字切開
字串:Test中文數字1000切割測試
字串切割的三種模式:
- T e s t 中 文 數 字 1 0 0 0 切 割 測 試
- Test 中文數字 1000 切割測試
- Test 中 文 數 字 1000 切 割 測 試
此程式內容都是陣列,直接合成一行寫在後面註解會比較容易看
<?php $str = 'Test中文數字1000切割測試'; // 所有字元都切開 preg_match_all('/./u', $str, $m); // $m[0]:T e s t 中 文 數 字 1 0 0 0 切 割 測 試 print_r(preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY)); // T e s t 中 文 數 字 1 0 0 0 切 割 測 試 // 中、英文字切開 preg_match_all('/\p{Latin}+|\p{Han}+|[0-9]+/u', $str, $m); // $m[0]:Test 中文數字 1000 切割測試 print_r(preg_split('/(?<!\p{Latin})(?=\p{Latin})|(?<!\p{Han})(?=\p{Han})|(?<![0-9])(?=[0-9])/u', $str, -1, PREG_SPLIT_NO_EMPTY)); // Test 中文數字 1000 切割測試 // 中、英文字切開,中文字再每個字元切開 print_r(preg_split("/(?<!\p{Latin})(?=\p{Latin}+)|(?=\p{Han})|(?<!\d)(?=\d)/u", $str, -1, PREG_SPLIT_NO_EMPTY)); // Test 中 文 數 字 1000 切 割 測 試 preg_match_all('/\p{Latin}+|\p{Han}|[0-9]+/u', $str, $m); // $m[0]:Test 中 文 數 字 1000 切 割 測 試 preg_match_all('/\p{Latin}+|\p{Han}|\d+/u', $str, $m); // $m[0]:Test 中 文 數 字 1000 切 割 測 試 ?>