Markdown中用于代码屏蔽的JavaScript正则表达式

时间:2011-11-30 21:14:05

标签: javascript regex markdown

我正在尝试为showdown.js添加对代码防护的支持,但我仍然是正则表达式的noob。如果您不知道,代码屏蔽是这样的:

```javascript
alert('hello world');
```

然后它会创建类似的东西:

<div class="highlight">
  <pre lang="javascript">
    alert('hello world');
  </pre>
</div>

如何在JavaScript风格的正则表达式中捕获```(任何)\ n(任何)```?

2 个答案:

答案 0 :(得分:2)

r = /`{3}(?:(.*$)\n)?([\s\S]*)`{3}/m;
r.exec(yourSampleString); // => [..., "javascript", "alert('hello world');\n"]
r.exec('```puts "ok"```'); // => [..., undefined, "puts \"ok\""]
r.exec('```foo```bar```'); // => [..., undefined, "foo```bar"]

答案 1 :(得分:1)

这将获得

之间的所有内容
  

```

result = subject.match(/`{3}[\s\S]*?`{3}/g);

但要注意嵌套:

  

```

会有麻烦......