我希望创建一个单独的正则表达式(用于一个Obsidian插件),它将与特定的Markdown标题下的特定行匹配。以下是原文:
# Inbox
- [ ] task 1
# Now
- [ ] task 2
- [ ] task 3
- test bullet note
- another bullet note
- [ ] task 4
# Next Actions
- [ ] task 5我希望正则表达式捕获标题"# Now“下的所有”任务“。在这里,这将是任务2、任务3(及其注释)和任务4。
我有下面的regex,它成功地捕获了任务,但是我不知道如何只在这个标题下指定任务。
^[ \t]*(-|\*|\d*\.) \[[xX ]\].*$发布于 2022-10-08 20:06:41
对于示例数据,您可以对# Now部件使用一个lookbehind断言,然后匹配- [ ]部件,后面跟着不以该模式开头的所有行。
(?<=^# Now\n(?:(?!\n# \w)[^])*)-[ \t]*\[[^][]*].*(?:\n[ \t]+-.*)*模式匹配;
(?<=正向跟踪^# Now\n匹配字面上在行的开头(?:(?!\n# \w)[^])*匹配任何断言(而不是# \w模式)的字符。)关闭后视-[ \t]*\[[^][]*]匹配和可选空格,然后是[...].*与行的其余部分匹配(?:\n[ \t]+-.*)*可选择地重复不以-[...]模式开头的所有行https://stackoverflow.com/questions/73991732
复制相似问题