繁体   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