最近在开发一个 App,里面的很多数据是需求方通过 word 文档提供的,经常是一个几百行的表格,对开发来说往往需要先转换成类似 JSON 等结构化的格式后才能在代码中使用。

复制-粘贴的格式转化这种体力活首先想到的是用 GPT-4o,但实测在大量数据的情况下精确度是个大问题,要么输出不了那么长的文本,要么数据跟原文档不一致,有时候甚至差得离谱,所以最终还是回到手工处理。当然也不是一段段文字复制粘贴加引号什么的,研究后发现 VS Code 其实可以很好的支持文本正则表达式的查找和替换。

将原数据复制到 VS Code 中如下图,要实现的效果是把每行前面两个字符作为key,后面部分作为 value,也就是要加上双引号、冒号、逗号这些。

1. 打开查找和替换面板:

Ctrl+H(Windows/Linux)或 Cmd+Option+F(Mac)

2. 启用正则表达式模式:

点击查找和替换面板右侧的正则表达式图标(.*按钮)。

3. 输入查找内容:

匹配每行的前两个字符,这里用标准的正则表达式就可以了,匹配前两个字符是^.{2}

4. 输入替换内容:

我们想将匹配的部分用单引号包围,并在后面加一个冒号,可以在“替换”字段中输入'$&':$& 表示整个匹配到的字符串。

5. 执行替换:

点击“全部替换”或“替换”按钮即可。

6. 处理后半部分

如法炮制,只是匹配后办法的正则表达式为(?<=\s).*

  • (?<=\s) 是一个 后顾(lookbehind) 断言,表示要匹配的内容之前必须有一个空白字符(包括空格、制表符、换行符等)。
  • .* 匹配任意数量的任意字符(除了换行符)。

同样的替换字符为:'$&',