我正在尝试为showdown.js添加对代码防护的支持,但我仍然是正则表达式的noob。如果您不知道,代码屏蔽是这样的:
```javascript
alert('hello world');
```
然后它会创建类似的东西:
<div class="highlight">
<pre lang="javascript">
alert('hello world');
</pre>
</div>
如何在JavaScript风格的正则表达式中捕获```(任何)\ n(任何)```?
答案 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);
但要注意嵌套:
```
会有麻烦......