PHP 如何將中文、英文、數字切開

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 切 割 測 試
?>

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料