我有markdown個(gè)文件,有時(shí)只有一個(gè)H2,但有時(shí)也有幾個(gè):
# This is H1
Some content.
## This is a H2
Some more content.
## This is another H2
Even more content.
我正在用Ruby編寫一個(gè)方法來提取H2s的含量,例如,我想提取第一個(gè)H2的含量。為此,我們提出了以下正則表達(dá)式:
^## This is a H2\n\n(.*)\n\n##
可悲的是,這只在markdown中有另一個(gè)H2時(shí)才起作用。但我不知道如何使最后一部分\n\n##
成為可選的,因?yàn)橄蛩砑右粋€(gè)?
(^\n## In Kürze\n\n(.*)[\n\n##]?
)將使它只對markdown使用一個(gè)H2工作,但是當(dāng)有幾個(gè)H2時(shí),它將捕獲所有后續(xù)的H2s及其內(nèi)容。
我希望你明白我的意思。我只想得到一個(gè)H2的含量,不管有多少H2。
你可以在這里玩我的作品:https://rubular.com/r/JVaYHHzglxdLdK
我相信這種模式解決了你的問題。它匹配H2節(jié)的內(nèi)容和H1/H2節(jié)開頭以及文件結(jié)尾的terminate。
https://regex101.com/r/PB80CH/2
啟用的標(biāo)志應(yīng)該是全局和單行的,不能使用多行模式,因?yàn)镠2s的特殊邏輯一直持續(xù)到文件結(jié)尾。