2016-01-29 45 views
0

所以我在MarkDown中有一些文本,我想在頭文件之間拆分成一個字符串數組,但包括頭文件之間的內容。 因此,對於下面的例子:用於拆分Markdown的正則表達式(Android)

我想直到結束是一個數組:

**Header 1**Lots of text here.\n 
**Header 2**More and more text here..\n 
**Header 3** etc.. 

我試圖爲沿(< = \行? * {1,10}。\ {1,10}),儘管我認爲在某處應該有[^ * {2}]這樣的東西來包含每個字符,但最多隻能有2 *(結尾標題)。 \ n不能保證在標題之前,所以我對如何做到這一點有點難堪。

任何幫助,將不勝感激:)

+0

是有你的字符串'\ N' –

+0

它確實大氣壓,但它不能保證 – crazyfool

+0

我用http://rubular.com/測試正則表達式的飛行。有了這個站點,調試正則表達式非常容易。 –

回答

0

你可以試試這個向前看符號基於正則表達式匹配:

((?:\*\*.+?(?=\*\*|$)){2,}) 
  • (?=\*\*|$)是正預測先行斷言任何文本匹配,直到我們打了一個\*\*或行結束。
  • {2,}範圍將確保至少兩個**在匹配文本
  • 捕獲組#1你願意你感興趣的

RegEx Demo

+0

我很欣賞這個回覆哥們,但問題在於astrerisks之間的標題可以是任何文本,標題只是標題文本的示例 – crazyfool

+0

好吧現在查看我的更新回答。 – anubhava

0

檢查文本這一個:

(* {2}。+?* {2}。*?)(?= * {2} | $)/ gi

它獲取2對**和文本之間的所有內容直到找到另一個**或行尾。保持$條件以趕上最後一個組是非常重要的(當您沒有任何標頭左側)。

演示: https://regex101.com/r/fI0gV6/4

+0

欣賞響應哥們,那正是我想要它,除了astrerisks之間的頭可以是任何文本,頭只是頭文本的一個例子 – crazyfool

+0

在這種情況下,我會改變一點匹配的方式。現在它應該捕捉你想使用的任何文本而不是「標題」。 –