首页  >  问答  >  正文

php - 使用正则表达式怎么匹配Markdiwn的H1~H6?

简单地使用/(#{1,6}) *(S+) *(?:r|n)*/确实能匹配出Markdown中的H1~H6标题,但是也把引用和代码块中的#(比如注释)匹配到了,如:

一段文字

使用> 的注释

或者

# 使用四个空格缩进的注释

# 使用`的注释

// code... # 代码注释
# 使用"的注释

怎样排除这些不需要匹配的情况

某草草某草草2654 天前680

全部回复(2)我来回复

  • 滿天的星座

    滿天的星座2017-06-14 10:51:55

    就你的问题而言。/^#/似乎就能满足需求,但是架不住php、bash之类以#为注释的语言。

    所以如果想要做得足够精准,就需要把md分块解析。

    回复
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-14 10:51:55

    我觉得你的问题是注释的代码块和标题的规则是一样的,怎么进行区分。

    两种方式区分

    • 标题换个规则

    • 代码块放在固定的标签里

    回复
    0
  • 取消回复