regex 正则表达式匹配两个连续的h2 markdown标题?

inb24sb2  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(84)

我正在尝试清理可能有两个连续markdown标题的文本,如下所示:## Foo bar\n\n## Another bar\n\n文本的其余部分还包含其他标题和其他\n\n
\n\n始终是文字字符,而不是实际的换行符。整个文本是一行。
让我用例子来描述一下:

  • 实施例1*
foo bar##Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n\n##Sed faucibus metus eu est sodales, a eleifend neque mollis.\n\nAliquam erat volutpat. Aenean ultrices odio leo, at vulputate enim porttitor non. Nam sodales vitae turpis quis sollicitudin. Mauris molestie eget purus nec scelerisque.\n\n##Sed eu erat quis nulla lobortis dapibus.\n\nPraesent suscipit, ante quis pretium varius, tellus ex consectetur elit, eu pharetra nunc metus cursus ex.\n\n##Aenean eu tempus dolor.\n\n Vivamus scelerisque sit amet mi eget dignissim. Fusce sit amet ligula vel tortor tincidunt porta.\n\n

应匹配:##Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n\n##Sed faucibus metus eu est sodales, a eleifend neque mollis.\n\n
实施例2

foo bar##Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n\n Some text here ##Sed faucibus metus eu est sodales, a eleifend neque mollis.\n\nAliquam erat volutpat. Aenean ultrices odio leo, at vulputate enim porttitor non. Nam sodales vitae turpis quis sollicitudin. Mauris molestie eget purus nec scelerisque.\n\n##Sed eu erat quis nulla lobortis dapibus.\n\nPraesent suscipit, ante quis pretium varius, tellus ex consectetur elit, eu pharetra nunc metus cursus ex.\n\n##Aenean eu tempus dolor.\n\n Vivamus scelerisque sit amet mi eget dignissim. Fusce sit amet ligula vel tortor tincidunt porta.\n\n

应该什么都不匹配。
我尝试过的所有正则表达式都匹配,即。也贪婪地捕获部分段落而不仅仅是标题。有什么想法吗
谢谢你!

w80xi6nr

w80xi6nr1#

这只是直接匹配double # up直到第一个double \n。
重复两次。

(?:\#\#(?:(?!\\n\\n).)*\\n\\n){2}

https://regex101.com/r/Ay8CLV/1
在格式化中解释

(?:
    \#\#
    (?:
       (?! \\ n \\ n )
       . 
    )*
    \\ n \\ n
 ){2}

为了确保正文不包含双#,如果需要的话,使用这个

(?:\#\#(?:(?!\\n\\n|\#\#).)*\\n\\n){2}

相关问题