首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在较大匹配范围内匹配字符串的Regex。

仅在较大匹配范围内匹配字符串的Regex。
EN

Stack Overflow用户
提问于 2022-10-07 19:11:52
回答 1查看 53关注 0票数 1

我希望创建一个单独的正则表达式(用于一个Obsidian插件),它将与特定的Markdown标题下的特定行匹配。以下是原文:

代码语言:javascript
复制
# 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,它成功地捕获了任务,但是我不知道如何只在这个标题下指定任务。

代码语言:javascript
复制
^[ \t]*(-|\*|\d*\.) \[[xX ]\].*$
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-08 20:06:41

对于示例数据,您可以对# Now部件使用一个lookbehind断言,然后匹配- [ ]部件,后面跟着不以该模式开头的所有行。

代码语言:javascript
复制
(?<=^# Now\n(?:(?!\n# \w)[^])*)-[ \t]*\[[^][]*].*(?:\n[ \t]+-.*)*

模式匹配;

  • (?<=正向跟踪
    • ^# Now\n匹配字面上在行的开头
    • (?:(?!\n# \w)[^])*匹配任何断言(而不是# \w模式)的字符。

  • )关闭后视
  • -[ \t]*\[[^][]*]匹配和可选空格,然后是[...]
  • .*与行的其余部分匹配
  • (?:\n[ \t]+-.*)*可选择地重复不以-[...]模式开头的所有行

Regex演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73991732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档