Regex Search

unlisted

by Tongtong Zhang

Search and replace all and individual files with Regex.

6 starsUpdated 10mo agoMIT
View on GitHub

Regex Search

Regex Search 是一个用于在 Obsidian 中进行正则表达式搜索和替换的插件。它支持当前文件搜索、全库搜索、批量替换,并提供常用正则表达式库,适合整理笔记、清理 Markdown、批量调整链接或查找结构化文本。

功能亮点

  • 在当前文件或整个库中搜索。
  • 在当前文件或筛选后的库文件中替换匹配内容。
  • 显示匹配结果及上下文。
  • 点击结果跳转到对应文件位置。
  • 支持区分大小写和多行模式。
  • 保存搜索历史,便于重复使用常见模式。
  • 内置正则表达式库,支持自定义、编辑、导入和导出。
  • 支持按文件扩展名筛选搜索范围。
  • 支持通过路径规则排除文件或目录。
  • 搜索和替换过程中显示进度。

安全机制 🛡️

正则表达式和批量替换都可能影响大量内容,因此插件加入了一些保护:

  • 运行前校验正则表达式语法;
  • 对复杂模式做基础检查,减少性能风险;
  • 限制单文件大小和每个文件的最大结果数;
  • 支持取消长时间运行的搜索;
  • 全库替换前显示确认对话框。

即便如此,批量替换前仍建议先检查表达式是否符合预期,并确保有同步历史或备份可用。

安装

使用 BRAT 📦

  1. 安装社区插件 BRAT
  2. 在命令面板中运行 BRAT: Add a beta plugin for testing
  3. 输入 tongtongsucho/regex-search
  4. 在 Obsidian 的社区插件设置中启用 Regex Search

手动安装

  1. 从 release 下载 main.jsmanifest.jsonstyles.css
  2. 将文件放入 .obsidian/plugins/regex-search/
  3. 在 Obsidian 的社区插件设置中启用 Regex Search

使用

在命令面板中运行:

  • 打开正则表达式搜索
  • 在当前文件中搜索
  • 快速正则表达式搜索
  • 管理正则表达式库

输入正则表达式,选择搜索选项,然后执行搜索或替换。替换文本支持常见转义序列,例如 \n\t\r

正则表达式库 📚

内置正则表达式库包含一些常见笔记整理场景:

分类示例用途
邮箱[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}匹配电子邮箱地址
日期\d{4}-\d{2}-\d{2}匹配 YYYY-MM-DD 日期
Markdown^#{1,6}\s.*匹配 Markdown 标题
双链\[\[.*?\]\]匹配 Obsidian 双链
待办\bTODO\b匹配 TODO 标记

你可以添加自己的表达式,也可以导入或导出整个正则库。

设置项

  • 默认搜索模式。
  • 默认是否区分大小写。
  • 默认是否启用多行模式。
  • 每个文件最大结果数。
  • 搜索的文件扩展名。
  • 排除路径规则。
  • 搜索历史。
  • 正则表达式库。
  • 搜索/替换进度显示。
  • 全库替换前确认。

开发

npm install
npm run build
npm run lint

项目使用 TypeScript、esbuild 和 eslint-plugin-obsidianmd

作者

Tongtong Zhang

许可证

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.