正则匹配中文怎么写 - 汉字/中文标点匹配方法

490 字
2 分钟
正则匹配中文怎么写 - 汉字/中文标点匹配方法

🌟 匹配中文有讲究#

英文用 [a-zA-Z],数字用 \d,那中文呢?中文是 Unicode 字符,需要按汉字范围或 Unicode 属性来匹配。星点正则测试器可以实时验证。


🀄 方法一:汉字范围#

最常用的是 CJK 统一汉字基本区:

[\u4e00-\u9fa5]
  • 匹配常用汉字;
  • 兼容性好,各语言都支持。

例:只保留中文

  • 正则:[^\u4e00-\u9fa5]
  • 替换为空

🀄 方法二:Unicode 属性(推荐)#

更规范、覆盖更全:

\p{Script=Han}

需要开启 Unicode 模式(JS 的 u 标志):

/[\p{Script=Han}]+/u

优点:覆盖扩展区汉字,不局限于 \u4e00-\u9fa5。


🔤 中文标点与全角#

注意:汉字范围不含中文标点。中文标点(,。!?:;「」等)在另一段 Unicode 区间。

内容说明
汉字[\u4e00-\u9fa5]
中文标点需另加范围,如 \u3000-\u303f、\uff00-\uffef
全角字母数字在 \uff01-\uff5e 区间

若”只保留中文(含标点)“,要同时包含这些区间。


📏 长度统计的坑#

用 [一-龥]{2,4} 校验中文姓名时要注意:

  • 复姓、少数民族姓名可能更长;
  • 生僻字可能不在基本区,需用 \p{Script=Han};
  • 别把标点误算进汉字。

💡 实例#

需求正则
全是中文^[\u4e00-\u9fa5]+$
中文姓名 2~4 字^[\u4e00-\u9fa5]{2,4}$
提取所有中文片段[\u4e00-\u9fa5]+
含中文(任一处)[\u4e00-\u9fa5]

🔧 常见问题#

为什么 `[\u4e00-\u9fa5]` 匹配不到生僻字? 它只覆盖基本区;扩展区汉字需用 `\p{Script=Han}`。
中文标点算中文吗? 不算。标点在独立区间,需要单独加入正则。
哪些语言支持 \p{Script=Han}? JS(带 u)、Java、.NET 支持较好;Python 用 `regex` 库,Go 需谨慎。见[多语言引擎](https://www.xingdian.net/app/regex/engines/)。

💬 总结#

匹配中文:简单用 [\u4e00-\u9fa5],规范用 \p{Script=Han}(开 u)。注意标点与全角字符要单独处理,别把标点当汉字。

立即体验:访问 正则测试器

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

相关文章 智能推荐
1
Python 和 Java 正则怎么写 - 跨语言正则语法对照
正则工具 Python 和 Java 正则写法对照:原始字符串、命名捕获组、Flags、反向引用、前瞻后顾的差异,附代码示例。帮你把正则正确迁移到目标语言。在线多语言正则工具。
2
正则不匹配怎么办 - 正则调试与常见失败原因
正则工具 正则写好了却不匹配?本文列出常见原因:锚点、大小写、贪婪、转义、换行、Unicode、全角字符,并给出排查方法与在线正则调试工具。
3
密码正则和用户名正则怎么写 - 强度校验实例
正则工具 密码正则、用户名正则怎么写?本文给出不同强度密码(含大小写/数字/特殊字符)的正则、用户名规则正则,并用前瞻断言实现"至少包含"条件。附在线常用格式正则工具。
4
正则性能优化 - 避免回溯、提升匹配速度的方法
正则工具 正则匹配很慢怎么办?本文总结正则性能优化方法:避免灾难性回溯、减少歧义量词、合理使用锚点、避免不必要的分组与捕获、预编译复用等,并说明 ReDoS 防范。附在线性能检测工具。
5
身份证/银行卡正则怎么写 - 校验规则与示例
正则工具 身份证正则、银行卡号正则怎么写?本文给出 18 位身份证、15 位旧身份证、银行卡号的表达式与逐段解释,说明校验位与格式校验的区别。附在线常用格式正则工具。
随机文章 随机推荐
公告
🎉 已升级 2.0 版本,欢迎使用。
分类
标签
站点统计
文章
194
分类
23
标签
735
总字数
327,233
运行时长
0 天
最后活动
0 天前

目录