sublime需用正则捕获组提取纯文本字段,如"(1)"取双引号内容;整行匹配用^.error.$配合ctrl+l;跨文件搜索结果需用^\[^:\n\]+:\d+:\s*(.*?)$替换为$1清理前缀;html文本提取应避免贪婪匹配,优先用2或[\s\s]*?并预处理script/style区块。" ↩
Sublime 本身不提供“提纯文本”的一键按钮,所有操作都靠正则匹配 + 手动复制组合完成;写错一个量词或漏掉括号,结果就全是噪音。
怎么用
Find All提取纯文本字段(非整行)适用于提取 URL、邮箱、手机号、双引号内内容等片段,核心是用捕获组圈定目标部分,否则复制出来会带周边干扰字符。
- 必须启用右上角
.*按钮开启正则模式,否则+、?都当字面量处理- 写带括号的捕获组:比如提取双引号内容用
"([^"]*)",提取 fetch 的 URL 用fetch\s*\(\s*["']([^"']*)["']- 输入后按
Alt + Enter(Windows/Linux)或Cmd + Enter(macOS)——此时光标只落在括号内,Ctrl + C复制的就是纯字段- 若没加括号,
Find All后复制的是整个匹配项(如连带href="或fetch()),不是你要的数据为什么
^.*error.*$比error更可靠日志、配置、HTML 源码里搜关键词,不锚定行首行尾,
Find All只高亮单词本身,根本没法整行复制。而^.*error.*$强制匹配完整行,再配合Ctrl + L就能真正选中整行。
error(未启用正则)→ 只匹配字面量,且不跨行error(启用正则但无^/$)→ 光标停在error起始位置,Ctrl + L无效^.*error.*$→Find All后光标自动跳到每行开头,立刻按Ctrl + L即可选中全部匹配行- 粘贴后若有首尾空格,用
Ctrl + H替换^\s+|\s+$为空(勾选正则)跨文件提取后怎么去掉
file.js:123:这类前缀
Ctrl + Shift + F(Find in Files)的结果默认带路径和行号,直接复制粘贴全是噪音;Sublime 不支持在 Find in Files 中引用捕获组,必须二次清理。
- 把搜索结果全选复制进新标签页,用
Ctrl + H打开替换面板,启用正则- 查找:
^[^:\n]+:\d+:\s*(.*?)(?=\s*$|\n|$)—— 它跳过冒号前所有内容,只取第一个非空字段,且不贪婪吞下一行- 替换为:
$1,不是\1(Sublime 替换面板只认$1)- Where 栏务必填具体路径(如
./src/**/*.ts),留空 = 只搜当前文件,很多人误以为扫了整个项目提取 HTML 标签内纯文本时最常踩的坑
想拿
<p>标题<b>加粗</b>结尾</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/ai/3680" title="亿图脑图"><img src="https://img.php.cn/upload/ai_manual/001/246/273/178599564191186.png" alt="亿图脑图" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/ai/3680" title="亿图脑图" class="overflowclass">亿图脑图</a> <p class="overflowclass">亿图脑图是一款AI思维导图工具,万兴科技推出的跨端AI思维导图助手。</p> </div> <a rel="nofollow" href="/ai/3680" title="亿图脑图" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>里的“标题”和“结尾”,但跳过中间的<b></b>,不能靠删标签再压空格——得用非贪婪 + 否定字符集精准捕获。
- 别用
<.></.>或<.></.>:前者贪婪吞到末尾,后者在 PCRE 下默认不匹配换行,多行标签就断- 正确写法:
<p>([^</p>(单层无嵌套),或更通用的]*>([^(保证开闭标签一致)- 若内容含换行,
[^ 失效,改用 <code><p>([\s\S]*?)</p>,但要先手动折叠<script></script>和<style></style>区块,否则[\s\S]会跨进去- 删完标签只剩裸文本,段落会挤成一团:先统一换行符为
\n,再对<p></p>、<div> 等块级标签单独替换为 <code>\n,最后用\n\s*\n→\n\n清理空行真正难的不是写出正则,而是判断该不该用 Sublime——当文档含大量 JS 字符串、动态插入 HTML 或嵌套层级超过两层时,PCRE 引擎已经力不从心,这时候该切到 Python + BeautifulSoup 做结构化解析,而不是在
[\s\S]里反复调参。











