You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Sublime Text/Notepad++中实现文本数字间空格转制表符

批量处理带空格的结构化数据:保留名称空格,替换分隔空格为制表符

问题场景

手上有一批结构化数据,格式规则为:AdminUnit1Code AdminUnit2Code AdminUnit3Code AdminUnitName Data1 Data2 Data3,但行政单位名称(如WARD NO. 01、DAKKHIN CHARKAI)本身包含空格,直接全局替换空格为制表符会破坏名称结构。示例数据如下:

10 BIRAMPUR 44125 16425 27700
10 001 WARD NO. 01 902 434 468
10 001 172 DAKKHIN CHARKAI 502 203 299
10 001 183 DEBIPUR 400 231 169
10 002 WARD NO. 02 899 557 342

需要实现仅替换作为分隔符的空格为制表符,保留名称内的空格,以下是Sublime Text和Notepad++的解决方案:

Sublime Text 操作步骤

  1. 打开目标数据文件,按下Ctrl+H调出替换面板
  2. 勾选面板左侧的「正则表达式」(.*图标)
  3. 查找内容输入:(\d+) (?=\S)
  4. 替换内容输入:$1\t
  5. 点击「全部替换」

逻辑说明:这个正则专门匹配「数字结尾 + 空格 + 非空白字符」的组合,只把数字后面的分隔空格换成制表符。不管是行政编码后的分隔空格,还是名称后数据字段前的分隔空格,都会被精准替换,完全不会影响名称内部的空格。

Notepad++ 操作步骤

  1. 打开目标数据文件,按下Ctrl+H调出替换面板
  2. 在「查找模式」里选「正则表达式」,不要勾选「.匹配换行符」
  3. 查找内容输入:(\d+) (?=\S)
  4. 替换内容输入:$1\t
  5. 点击「全部替换」

补充说明:就算遇到部分字段缺失的行(比如第一行10 BIRAMPUR 44125...,缺少二级、三级行政编码),这个正则依然能正常工作——它只会替换数字后面的分隔空格,名称前后的分隔符都会被换成制表符,名称内部的空格完全保留。

内容的提问来源于stack exchange,提问作者Ikhtiar Sobhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 00:52:52