用[\uff00-\uffef\u3000]可精准匹配绝大多数全角字符(含全角标点、字母、数字及全角空格),因\uff00-\uffef覆盖常见全角区,而\u3000补全全角空格;避免误用[^a-za-z0-9]等宽泛表达式。

怎么用正则匹配全角字符(不是汉字)
Sublime 默认不区分字符宽度,但全角标点、全角字母、全角数字在 Unicode 中有明确区间,直接用 [\uFF00-\uFFEF] 就能覆盖绝大多数常见全角字符(如全角 A:A、全角 1:1、全角逗号:,)。这个范围比只写 [\u4e00-\u9fa5](仅汉字)宽得多,也比旧式写法 [一-龥] 可靠——后者在 Sublime 里基本不生效。
常见错误:有人想“排除半角”,却误用 [^a-zA-Z0-9],这会把换行、Tab、汉字、日文全卷进来,完全偏离目标。要精准抓全角,就得锁定 Unicode 码位,别绕弯。
- 只匹配全角数字:
[\uFF10-\uFF19] - 只匹配全角英文字母(大小写):
[\uFF21-\uFF3A\uFF41-\uFF5A] - 只匹配全角常用标点(括号、逗号、句号等):
[\uFF01-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65]
为什么 [\uFF00-\uFFEF] 有时会漏掉全角空格
全角空格( ,U+3000)不在 \uFF00-\uFFEF 范围内,它属于 CJK 符号和标点区。所以如果文本里混有全角空格,必须显式加上 \u3000。
实际操作中,若发现“明明有全角空格却没被选中”,大概率是这个原因。安全写法是:[\uFF00-\uFFEF\u3000]。再严格一点,可补上不常用的零宽空格(\u200B)、不间断空格(\u00A0),但它们不算“全角”,只是视觉干扰项。
验证方法:新建文件,输入 A ,(注意中间是全角空格),用 [\uFF00-\uFFEF] 查找 → 只高亮 A 和 ,;加 \u3000 后才圈中空格。
如何批量提取全角字符并分行输出
Sublime 不支持一键导出为列表,但可通过 Find All + 多光标快速生成干净结果:
- 按
Ctrl+F,输入[\uFF00-\uFFEF\u3000],点右下角.*图标启用正则 - 按
Alt+Enter(Windows/Linux)或Cmd+Ctrl+G(Mac)执行Find All - 此时所有全角字符被单独选中(非整行),直接
Ctrl+C复制 - 粘贴到新标签页,再按
Ctrl+H→ 查找(.)(?=.))→ 替换为$1\n,就能每字符一行
注意:别用 .*? 或 . 直接替换,Sublime 的 . 默认不匹配换行符,且无 /g 标志,必须靠 Find All 驱动多实例替换逻辑。
跨文件查找全角字符时的路径陷阱
用 Ctrl+Shift+F 全局搜全角字符,最容易踩的是作用域失控:
-
Where栏留空或填*→ 扫描整个磁盘,包括node_modules、.git,卡死或误命 - 没限定后缀 → 二进制文件(如图片、PDF)可能触发乱码解析,报错或跳过
- 未预览就点
Replace All→ 没法撤回,尤其当[\uFF00-\uFFEF]在 CSS/HTML 文件里命中大量全角引号或破折号时,极易破坏结构
正确做法:先在单个文件确认正则有效,再进 Ctrl+Shift+F,Where 填 src/**/*.html,src/**/*.md 这类明确路径,点 Find 预览前 20 条结果,确认全是目标内容再操作。
真正难处理的不是正则本身,而是混合场景:比如 Markdown 表格里既有全角竖线 |,又有半角管道 |,还夹着 HTML 实体 |——这时候正则只能做初筛,人工校验仍不可少。











