Obsidian中Neuracache风格闪卡正则表达式优化求助
Obsidian闪卡正则优化方案
优化后的正则表达式
需开启多行模式(m flag),正则代码如下:
^(.+?)\s*#flashcard\s*\n((?:(?!^---$|^<!--).*\n?)+)
正则规则说明
- 问题捕获组(第一组):
^(.+?)
从行首开始非贪婪匹配所有内容,直到遇到#flashcard标签(标签前后允许任意空白字符),能完整捕获#flashcard前的问题文本,支持多行问题格式。 - 标签匹配:
\s*#flashcard\s*\n
匹配#flashcard标签,兼容标签前后的空格、换行,同时跳过标签后的换行符。 - 答案捕获组(第二组):
((?:(?!^---$|^<!--).*\n?)+)
通过负向前瞻排除行首的---或<!--分隔符,匹配#flashcard之后、分隔符之前的所有内容,支持多段落答案,保留原有换行格式。
使用注意事项
- 必须开启正则的多行模式(
m),否则^仅会匹配整个文本的开头,无法识别行首的分隔符。 - 适配Obsidian笔记的排版逻辑,支持问题、答案中的换行和多段落格式。
内容的提问来源于stack exchange,提问作者Mlengcivil
相关产品推荐
相关产品推荐

