sublime用ctrl+h正则重构html表格快且稳,关键在正确书写正则(如([^

直接用 Ctrl+H + 正则模式,别写脚本、别导Excel、别碰插件——Sublime 处理静态 HTML 表格数据重构,快且稳,前提是正则写对、范围控住、替换前必核验。
匹配 <tr> 里的 <code><td> 内容但不跨行
<p>表格数据常是多行 <code><tr> 套若干 <code><td>,想提取每行的字段做清洗或重排,不能让 <code>.* 越界吞掉下一行。常见错误是写 <td>(.*?)</td> 却没关单行模式,结果从第一个 <td> 一直吃到文件末尾最后一个 <code>
。
- 安全写法:
<td>([^ —— <code>[^ 明确表示“非左尖括号字符”,不会跨标签
<li>若内容含 HTML 实体(如 <code> )或嵌套标签(极少见但存在),得先清理或改用 <td>([\s\S]*?)</td>,但必须配合 <tr>([\s\S]*?)</tr> 外层包裹,否则仍可能越界
- 匹配整行
<tr>:用 <code><tr>([\s\S]*?)</tr>,再在替换中用 $1 提取内部所有 <td>,避免手动点多次 <code>Find All
把 <td> 批量转成 JSON 字段或 CSV 行
<p>比如原始表格每行是姓名、城市、年龄,想转成 <code>{"name":"张三","city":"北京","age":"28"} 或 "张三","北京","28"。关键在分组捕获顺序和引号/逗号控制。
anything-to-html
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
下载
- 先确保三列
<td> 连续出现:查找 <code><td>([^\s*</td>
<td>([^\s*</td>
<td>([^
<li>转 JSON:<code>{"name":"$1","city":"$2","age":"$3"} —— 注意双引号要手动加,$1 不自动带引号
- 转 CSV:
"$1","$2","$3" —— 若某字段本身含双引号,需额外处理(如替换成 ""),Sublime 不支持条件替换,得拆两步
- 如果列数不固定,别硬写三个
([^,改用 <code><td>([^ 配合 <code>Find All + Ctrl+Shift+L 多光标,再逐列操作
替换时保留原有缩进,但清除 <td> 标签
<p>很多人想删标签只留文本,却用 <code><td>|</td> 分两步替换,结果空行、缩进错乱。更稳的方式是一次性捕获内容并复用空白符。
- 查找:
(\s*)<td>([^(\s*) —— 用三组分别捕获行首空格、内容、行尾空格
<li>替换:<code>$1$2$3 —— 这样缩进不变,<td> 和 <code>
消失,内容原位留下
- 若
<td> 内有换行或空格(如 <code><td>\n text\n</td>),[^ 会失败,此时改用 <code>(\s*)<td>([\s\S]*?)</td>(\s*),但务必先 Find All 确认高亮没吞错块
- 注意:HTML 中
<td> 可能带属性(如 <code><td align="center">),上面正则不匹配;需扩展为 <code><td>]*>,但会增加复杂度,建议先统一清理属性再处理
<h3>执行 <code>Replace All 前必须人工核验 3 处以上
Sublime 没有预览窗口,Replace All 是原子操作,跨多文件时 Ctrl+Z 只能撤回当前焦点文件。尤其表格重构常涉及嵌套、空单元格、合并单元格(colspan)、注释等干扰项,自动替换极易出错。
- 永远先点
Find All,看状态栏数字是否符合预期;再上下滚动,检查高亮是否精准落在目标 <td> 内,有没有漏掉或吞多
<li>选中一个典型行(含空值、引号、特殊字符),按 <code>Ctrl+Shift+H 开启替换预览(仅限当前文件),确认 $1 展开结果正确
- Where 输入框必须填清楚范围,例如
./src/pages/, -node_modules/, -dist/,留空 = 只改当前页;填 * 或 ** = 匹配失败
- 最易忽略的一点:UTF-8 BOM 或 GBK 编码文件里,中文可能被截断或乱码,导致正则失效——先用
File → Reopen with Encoding → UTF-8 统一编码再操作
<td>([^ —— <code>[^ 明确表示“非左尖括号字符”,不会跨标签
<li>若内容含 HTML 实体(如 <code> )或嵌套标签(极少见但存在),得先清理或改用 <td>([\s\S]*?)</td>,但必须配合 <tr>([\s\S]*?)</tr> 外层包裹,否则仍可能越界<tr>:用 <code><tr>([\s\S]*?)</tr>,再在替换中用 $1 提取内部所有 <td>,避免手动点多次 <code>Find All
把 <td> 批量转成 JSON 字段或 CSV 行
<p>比如原始表格每行是姓名、城市、年龄,想转成 <code>{"name":"张三","city":"北京","age":"28"} 或 "张三","北京","28"。关键在分组捕获顺序和引号/逗号控制。
anything-to-html
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
下载
- 先确保三列
<td> 连续出现:查找 <code><td>([^\s*</td>
<td>([^\s*</td>
<td>([^
<li>转 JSON:<code>{"name":"$1","city":"$2","age":"$3"} —— 注意双引号要手动加,$1 不自动带引号
- 转 CSV:
"$1","$2","$3" —— 若某字段本身含双引号,需额外处理(如替换成 ""),Sublime 不支持条件替换,得拆两步
- 如果列数不固定,别硬写三个
([^,改用 <code><td>([^ 配合 <code>Find All + Ctrl+Shift+L 多光标,再逐列操作
替换时保留原有缩进,但清除 <td> 标签
<p>很多人想删标签只留文本,却用 <code><td>|</td> 分两步替换,结果空行、缩进错乱。更稳的方式是一次性捕获内容并复用空白符。
- 查找:
(\s*)<td>([^(\s*) —— 用三组分别捕获行首空格、内容、行尾空格
<li>替换:<code>$1$2$3 —— 这样缩进不变,<td> 和 <code>
消失,内容原位留下
- 若
<td> 内有换行或空格(如 <code><td>\n text\n</td>),[^ 会失败,此时改用 <code>(\s*)<td>([\s\S]*?)</td>(\s*),但务必先 Find All 确认高亮没吞错块
- 注意:HTML 中
<td> 可能带属性(如 <code><td align="center">),上面正则不匹配;需扩展为 <code><td>]*>,但会增加复杂度,建议先统一清理属性再处理
<h3>执行 <code>Replace All 前必须人工核验 3 处以上
Sublime 没有预览窗口,Replace All 是原子操作,跨多文件时 Ctrl+Z 只能撤回当前焦点文件。尤其表格重构常涉及嵌套、空单元格、合并单元格(colspan)、注释等干扰项,自动替换极易出错。
- 永远先点
Find All,看状态栏数字是否符合预期;再上下滚动,检查高亮是否精准落在目标 <td> 内,有没有漏掉或吞多
<li>选中一个典型行(含空值、引号、特殊字符),按 <code>Ctrl+Shift+H 开启替换预览(仅限当前文件),确认 $1 展开结果正确
- Where 输入框必须填清楚范围,例如
./src/pages/, -node_modules/, -dist/,留空 = 只改当前页;填 * 或 ** = 匹配失败
- 最易忽略的一点:UTF-8 BOM 或 GBK 编码文件里,中文可能被截断或乱码,导致正则失效——先用
File → Reopen with Encoding → UTF-8 统一编码再操作
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
<td> 连续出现:查找 <code><td>([^\s*</td>
<td>([^\s*</td>
<td>([^
<li>转 JSON:<code>{"name":"$1","city":"$2","age":"$3"} —— 注意双引号要手动加,$1 不自动带引号"$1","$2","$3" —— 若某字段本身含双引号,需额外处理(如替换成 ""),Sublime 不支持条件替换,得拆两步([^,改用 <code><td>([^ 配合 <code>Find All + Ctrl+Shift+L 多光标,再逐列操作
替换时保留原有缩进,但清除 <td> 标签
<p>很多人想删标签只留文本,却用 <code><td>|</td> 分两步替换,结果空行、缩进错乱。更稳的方式是一次性捕获内容并复用空白符。
- 查找:
(\s*)<td>([^(\s*) —— 用三组分别捕获行首空格、内容、行尾空格
<li>替换:<code>$1$2$3 —— 这样缩进不变,<td> 和 <code>
消失,内容原位留下
- 若
<td> 内有换行或空格(如 <code><td>\n text\n</td>),[^ 会失败,此时改用 <code>(\s*)<td>([\s\S]*?)</td>(\s*),但务必先 Find All 确认高亮没吞错块
- 注意:HTML 中
<td> 可能带属性(如 <code><td align="center">),上面正则不匹配;需扩展为 <code><td>]*>,但会增加复杂度,建议先统一清理属性再处理
<h3>执行 <code>Replace All 前必须人工核验 3 处以上
(\s*)<td>([^(\s*) —— 用三组分别捕获行首空格、内容、行尾空格
<li>替换:<code>$1$2$3 —— 这样缩进不变,<td> 和 <code>
消失,内容原位留下<td> 内有换行或空格(如 <code><td>\n text\n</td>),[^ 会失败,此时改用 <code>(\s*)<td>([\s\S]*?)</td>(\s*),但务必先 Find All 确认高亮没吞错块
<td> 可能带属性(如 <code><td align="center">),上面正则不匹配;需扩展为 <code><td>]*>,但会增加复杂度,建议先统一清理属性再处理
<h3>执行 <code>Replace All 前必须人工核验 3 处以上Sublime 没有预览窗口,Replace All 是原子操作,跨多文件时 Ctrl+Z 只能撤回当前焦点文件。尤其表格重构常涉及嵌套、空单元格、合并单元格(colspan)、注释等干扰项,自动替换极易出错。
- 永远先点
Find All,看状态栏数字是否符合预期;再上下滚动,检查高亮是否精准落在目标<td> 内,有没有漏掉或吞多 <li>选中一个典型行(含空值、引号、特殊字符),按 <code>Ctrl+Shift+H开启替换预览(仅限当前文件),确认$1展开结果正确 - Where 输入框必须填清楚范围,例如
./src/pages/, -node_modules/, -dist/,留空 = 只改当前页;填*或**= 匹配失败 - 最易忽略的一点:UTF-8 BOM 或 GBK 编码文件里,中文可能被截断或乱码,导致正则失效——先用
File → Reopen with Encoding → UTF-8统一编码再操作
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










