0

0

php按中英文混排分割文本_php混排分割正则匹配【步骤】

看不見的法師

看不見的法師

发布时间:2026-02-01 21:41:24

|

829人浏览过

|

来源于php中文网

原创

正确分割中英文混排应匹配字符类切换处,即中文与英数字之间、英数字与中文之间的边界,推荐正则:/(?

php按中英文混排分割文本_php混排分割正则匹配【步骤】

用 preg_split 匹配中英文混排边界

直接用 /[a-zA-Z\u4e00-\u9fa5]+/u 是错的——它只提取字符块,不是分割点。真正要切开的位置是「中文和英文/数字之间」「英文/数字和中文之间」,也就是 Unicode 字符类切换处。

推荐正则:/(?

  • (? 表示前面是中文(Unicode 范围)
  • (?=[a-zA-Z0-9]) 表示后面是 ASCII 字母或数字
  • 中间的 | 表示“或”,覆盖两个方向的边界
  • /u 修饰符必须加,否则 \x{4e00} 这类 Unicode 转义不生效

preg_split 的 flags 参数不能漏

默认 preg_split 会丢掉空字符串,而中英文紧挨时(如“测试abc”),边界可能出现在开头或结尾,导致结果数组含空项。是否保留,取决于你后续怎么处理。

  • 要保留所有切片(含空串):加 PREG_SPLIT_NO_EMPTY 反而是错的——它会过滤掉空项,而你可能需要知道“这里断开了但没内容”
  • 更稳妥的是显式传 PREG_SPLIT_DELIM_CAPTURE 配合空匹配,但此处不需要捕获分隔符,所以通常只用 0(即不加 flag)或 PREG_SPLIT_NO_EMPTY 按需取舍
  • 实际调用建议:preg_split($pattern, $text, -1, PREG_SPLIT_NO_EMPTY),-1 表示不限制分割次数

注意全角标点和空白字符的干扰

真实文本里常夹杂中文顿号、句号、空格、全角空格(\u3000)、甚至 emoji。上面的正则只处理中英/数字边界,对这些字符视作“中文”或“其他”,容易把它们和相邻中文连成一块,或意外切在标点前后。

立即学习PHP免费学习笔记(深入)”;

Clippah
Clippah

AI驱动的创意视频处理平台

下载
  • 如果需把中文标点(如,。!?;:""''()【】)也当作中文处理,扩展 Unicode 范围:\x{4e00}-\x{9fff}\x{3000}-\x{303f}\x{3099}-\x{309c}
  • 如果希望保留原始空格结构,别用 trim()str_replace(' ', '') 预处理——空格本身可能是语义分隔符(如“姓名 age”中的空格)
  • emoji(如 ???‍?)属于 Unicode 扩展区,不在 \x{4e00}-\x{9fa5} 内,会被当成“非中文”,可能错误切开。真要支持 emoji,得单独加 \x{1f300}-\x{1f9ff} 等范围,但代价是正则变复杂、性能略降

简单验证和 fallback 方案

写完正则别急着上线,先用几个典型 case 测:

var_dump(preg_split('/(?<=[\x{4e00}-\x{9fa5}])(?=[a-zA-Z0-9])|(?<=[a-zA-Z0-9])(?=[\x{4e00}-\x{9fa5}])/u', 'PHP教程v2.3发布'));
// 输出:['PHP教程', 'v2.3', '发布']

如果遇到极端混排(如“a测b试c123d”),正则仍会按字符逐一切,但语义已失。这时不如退到按字节/码点遍历的 fallback —— 用 mb_str_split($text, 1, 'UTF-8') 拆成单字符数组,再手动合并连续同类型块。不过性能差一截,仅作兜底。

真正难的不是写出正则,而是定义清楚:你到底要“按语言边界切”,还是“按可读词元切”。后者涉及分词,PHP 基本不碰;前者,就老实用上面那个带 Unicode 边界的 preg_split

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

32

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

23

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

268

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

195

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

170

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

85

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.6万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号