簡體   English   中英

正則表達式代碼圍欄降價。 簡單嗎?

[英]regex for code fence markdown. Is it simple?

我正在嘗試為代碼圍欄降價找到正則表達式

```

some code

```

它應該與模式匹配,然后存儲在Javascript數組中

首先,我編寫了以下代碼:

```+\n[\s\S]+```+

但是,由於```不表示開始-結束。 如果我有多個代碼圍欄,它會像選擇一個整體一樣選擇整體,如下所示:

```

some code

```

```

some code

```

我調查了標記的代碼,然后發現下面的內容

fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/

但是,這似乎只是第一時間。

什么是正確的正則表達式? 如果太復雜,我想我可以用修剪結果構造Array。

如果有一個精美的正則表達式,我會選擇的。

[\\s\\S]+貪心,也匹配籬笆定界符,因此匹配太多。 您有兩種選擇:

要么使量詞變得懶惰,使其匹配盡可能少的字符:

/```\n[\s\S]+?```/g

或使用否定的前瞻性斷言來確保您在籬笆邊界上不匹配:

/```\n(?:(?!```)[\s\S])+```/g

/g全局修飾符允許正則表達式匹配多次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM