正则表达式可高效清理各类空格:一、/\s/g删除所有空白;二、/[ \t]/g仅删空格和制表符;三、/[\u3000\s]/gu删全角空格及Unicode空白;四、/1/gu保留不间断空格;五、显式码位字符类精准控制。\S\u00a0 ↩

如果您需要清理文本中的各类空格字符(包括全角空格、半角空格、制表符、换行符、不间断空格等),正则表达式提供了一种高效且灵活的处理方式。以下是几种针对不同空格类型和场景的删除方法:
一、删除所有空白字符(含空格、制表符、换行符、回车符)
该方法使用 \s 元字符匹配任意空白字符,适用于需彻底清除所有不可见空白符的场景,但需注意它也会移除换行和制表结构。
1、在支持 PCRE 或 JavaScript 正则的编辑器(如 VS Code、Sublime Text)或编程语言中,使用正则表达式 /\s/g 进行全局替换。
2、将替换内容留空,执行替换操作。
3、验证结果:原文本中所有空格、\t、\n、\r 均被清除。
二、仅删除半角空格与制表符,保留换行符
当需要保留段落结构(即保留 \n 和 \r),但去除横向排版干扰(空格与 \t)时,应避免使用 \s,改用显式字符类。
1、使用正则表达式 /[ \t]/g 进行匹配。
2、确保正则标志为全局(g),并在替换框中输入空字符串。
3、执行后,文本中所有 ASCII 空格(U+0020)和水平制表符(U+0009)被移除,而换行符保持不变。
三、删除全角空格(中文空格,U+3000)及其他 Unicode 空格
中文文档常混入全角空格( ),它不被 \s 匹配(除非启用 Unicode 模式),需单独处理或使用 Unicode 类。
1、使用正则表达式 /[\u3000\s]/gu,其中 u 标志启用 Unicode 模式,\s 在此模式下可匹配更多 Unicode 空格字符(如 U+2000–U+200F、U+2028–U+2029 等)。
2、在支持 Unicode 的环境(如现代 JavaScript、Python 3.7+ 的 re.compile(..., re.UNICODE))中应用该模式。
3、执行全局替换,清除全角空格及扩展空白集。
四、精确排除不间断空格(NBSP,U+00A0)并删除其余空格
不间断空格常用于防止断行,若需保留它而清除其他所有空格,则必须显式排除其 Unicode 码位。
1、使用正则表达式 /[^\S\u00a0]/gu,其中 \S 表示非空白字符,^ 取反后 [^\S\u00a0] 即“非非空白字符且非 U+00A0”,等价于“所有空白字符除 U+00A0 外”。
2、在启用 Unicode 模式(u)的引擎中执行全局替换。
3、替换为空字符串后,U+00A0 将完整保留,其余空格、制表符、换行符等均被删除。
五、使用字符类逐个指定需删除的空格码位
在正则引擎不支持 Unicode 模式或需绝对控制时,可手动列出常见空格字符的 Unicode 编码进行匹配。
1、使用正则表达式 /[\u0020\u0009\u000a\u000d\u3000\u2000-\u200f\u2028\u2029]/g,覆盖半角空格、制表、换行、回车、全角空格及英文排版常用空白。
2、确认目标环境支持 Unicode 转义(如大多数现代编辑器与语言均支持)。
3、执行全局替换,不添加 u 标志亦可生效,兼容性更强。










