php - 如何在PHP中拆分汉字?

标签 php split character cjk

我需要一些关于如何在 PHP 中拆分与英文单词和数字混合的汉字的帮助。

例如,如果我阅读

FrontPage 2000中文版應用大全

我希望得到

FrontPage, 2000, 中,文,版,應,用,大,全

FrontPage, 2,0,0,0, 中,文,版,應,用,大,全

我怎样才能做到这一点?

提前致谢:)

最佳答案

假设您使用的是 UTF-8(或者您可以使用 Iconv 或其他工具将其转换为 UTF-8),然后使用 u 修饰符(文档:http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php)

<?
    $s = "FrontPage 2000中文版應用大全";
    print_r(preg_match_all('/./u', $s, $matches));
    echo "\n";
    print_r($matches);
?>

会给予

21
Array
(
    [0] => Array
        (
            [0] => F
            [1] => r
            [2] => o
            [3] => n
            [4] => t
            [5] => P
            [6] => a
            [7] => g
            [8] => e
            [9] =>  
            [10] => 2
            [11] => 0
            [12] => 0
            [13] => 0
            [14] => 中
            [15] => 文
            [16] => 版
            [17] => 應
            [18] => 用
            [19] => 大
            [20] => 全
        )

)

请注意,我的源代码也存储在以 UTF-8 编码的文件中,因为 $s 包含这些字符。

以下将匹配字母数字作为一个组:

<?
$s = "FrontPage 2000中文版應用大全";
print_r(preg_match_all('/(\w+)|(.)/u', $s, $matches));
echo "\n";
print_r($matches[0]);
?>

结果:

10
Array
(
    [0] => FrontPage
    [1] =>  
    [2] => 2000
    [3] => 中
    [4] => 文
    [5] => 版
    [6] => 應
    [7] => 用
    [8] => 大
    [9] => 全
)

关于php - 如何在PHP中拆分汉字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113802/

相关文章:

php - 只允许特殊级别的人登录

html - CSS 以两种颜色显示一个字符

php - 如何知道什么值从我的 Activity 发送到 Android 中的 MySql 服务器

php - 如何在此循环中选择所有其他结果? [PHP]

php - 尝试将多个项目发布到表单提交 PHP 的下一页

Java 将带有换行符的字符串拆分为数组,其中使用缓冲读取器从文件中读取字符串

python - 在 python 中拆分相当于 gzip 文件

javascript - 检测然后反转字符串中的数字

r - 为什么 `\n` 不会将文本移动到 R 中的下一行?

mysql - 在 MySQL 中将 Varchar 拆分为字符