【问题标题】:Parse Markdown that is separated by `#` with regex pattern使用正则表达式模式解析由 `#` 分隔的 Markdown
【发布时间】:2019-01-14 22:37:38
【问题描述】:

我想解析由#(单个哈希)分隔的 Markdown。 我一直在尝试使用 Ruby。

下面的代码输出["# Bob's markdown header 1\n\nsomething here.\n\n", "#", "# kitty's header 1\n\nmeow.\n\n"]

p \
arrayobj = <<-EOS.scan(/^#[^#]*/m)

# Bob's markdown header 1

something here.

## this is markdown header 2

yeah.

# kitty's header 1

meow.

EOS

但是我想要的在下面。

["# Bob's markdown header 1\n\nsomething here.\n\n## this is markdown header 2\n\nyeah.\n\n", "# kitty's header 1\n\nmeow.\n\n"]

那么,你如何解析 Markdown?

【问题讨论】:

    标签: ruby regex markdown


    【解决方案1】:

    您可以匹配以# 开头的行,而不是另一个# 以及任何数量的不以这样的独立# 字符开头的后续行:

    .scan(/^#(?!#).*(?:\R(?!#(?!#)).*)*/)
    

    请参阅Ruby demo online

    模式详情

    • ^ - 行首
    • #(?!#) - # 后面没有 #
    • .* - 该行的其余部分
    • (?:\R(?!#(?!#)).*)* - 零次或多次连续出现:
      • \R(?!#(?!#)) - 任何不跟随独立 # 的换行序列(对于旧 Ruby 版本使用 \n
      • .* - 该行的其余部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 2010-10-16
      • 2016-12-03
      相关资源
      最近更新 更多