登录
首页 >  文章 >  java教程

要使用正则表达式删除汉字(中文字符),可以使用以下正则表达式:正则表达式(适用于大多数编程语言,如 Python、JavaScript 等):[\u4e00-\u9fa5]说明:\u4e00-\u9fa5 是 Unicode 中中文字符的范围。使用这个正则表达式可以匹配所有中文字符。示例(以 Python 为例):import re text = "这是一段包含中文的文本。" result =

时间:2026-04-07 19:07:27 212浏览 收藏

本文深入解析了如何精准高效地使用正则表达式删除中文字符,从最常用的基础写法([\u4e00-\u9fa5])出发,逐步进阶到覆盖生僻字、繁体字和古籍用字的多区间组合方案,并重点推荐语义清晰、兼容性好且支持Unicode扩展的现代写法/\p{Script=Han}/gu——它不仅能准确识别所有汉字脚本字符(含中日韩共用汉字),还能灵活叠加中文标点匹配,同时避免误删英文字母、数字及符号;文中还贴心指出常见误区(如禁用[一-龥])、环境兼容提示及空格清理技巧,无论你是处理简体网页文本还是古籍数字化,都能找到即拿即用的可靠解决方案。

正则表达式删除汉字_正则表达式匹配并删除中文字符

要删除文本中的汉字(中文字符),可以使用正则表达式匹配 Unicode 中的中文字符范围,然后替换为空字符串。关键在于准确覆盖常用汉字、标点及扩展区,同时避免误删字母、数字、符号或日韩字符(除非你明确需要)。

匹配并删除基础汉字(含常用中文标点)

最常用的中文字符 Unicode 范围是 \u4e00-\u9fa5,它覆盖了基本汉字(约 2 万个)和全角中文标点(如,。!?“”‘’等)。适用于大多数简体中文场景:

s.replace(/[\u4e00-\u9fa5]/g, '')
  • ✅ 匹配:一、你、好、,、!、“、《、》
  • ❌ 不匹配:a、1、@、\n、英文字母、日文假名、韩文

更全面:覆盖扩展汉字与兼容区

若需处理古籍、生僻字、繁体、港台用字或《康熙字典》增补字,建议加入以下扩展区间:

s.replace(/[\u4e00-\u9fa5\u3400-\u4dbf\u20000-\u2a6df\u2a700-\u2b73f\u2b740-\u2b81f\u2b820-\u2ceaf]/g, '')
  • \u3400-\u4dbf:CJK 扩展 A 区(3 万+ 汉字,含大量繁体/古字)
  • \u20000-\u2a6df 等:扩展 B、C、D、E、F 区(需注意 JavaScript 中需用 UTF-16 代理对,但现代引擎如 Chrome/Firefox/Node.js 12+ 原生支持)
  • ⚠️ 注意:部分老环境(如 IE)不支持 \u{20000} 这类花括号语法,推荐用双字节代理对写法或使用 u 标志(见下条)

推荐写法:启用 u 标志 + 宽泛 Unicode 类

ES2015+ 支持 /.../u 模式,可安全匹配增补平面字符,并配合 Unicode 属性转义(更语义化):

s.replace(/\p{Script=Han}/gu, '')
  • \p{Script=Han} 精确匹配所有汉字脚本字符(含中、日、韩共用汉字,但不含假名/谚文)
  • g 全局匹配,u 启用 Unicode 模式(必需)
  • ✅ 兼容性好(Node.js ≥10.0,Chrome ≥64,Firefox ≥78)
  • ? 若还需删除中文全角标点(如 、【、】),可叠加:/[\p{Script=Han}\p{Pc}\p{Pf}\p{Pi}\p{Po}\p{Ps}]/gu

注意事项与常见误区

  • 别用 [一-龥]:这是过时写法,范围不完整且易出错(如漏掉「〇」「々」)
  • 别混淆 \w:JavaScript 中 \w 默认只匹配 ASCII 字母数字下划线,不匹配汉字
  • 删除后保留空格?如需清理多余空白,可追加:.replace(/\s+/g, ' ').trim()
  • 想保留英文/数字/符号,只删中文?上述所有方案默认就是如此,无需额外排除

到这里,我们也就讲完了《要使用正则表达式删除汉字(中文字符),可以使用以下正则表达式:正则表达式(适用于大多数编程语言,如 Python、JavaScript 等):[\u4e00-\u9fa5]说明:\u4e00-\u9fa5 是 Unicode 中中文字符的范围。使用这个正则表达式可以匹配所有中文字符。示例(以 Python 为例):import re text = "这是一段包含中文的文本。" result = re.sub(r'[\u4e00-\u9fa5]', '', text) print(result) # 输出: 这段包含的文本。示例(以 JavaScript 为例):let text = "这是一段包含中文的文本。"; let result = text.replace(/[\u4e00-\u9fa5]/g, ''); console.log(result); // 输出: 这段包含的文本。注意事项:如果你还想删除标点符号或空格,可以扩展正则表达式,例如:[\u4e00-\u9fa5\s\p{P}]+(注意:部分语言需要启用 Unicode 模式)如果你有特定的语言环境或需求,我可以帮你定制》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>