我的文档包含几个代码块实例,如下所示:

{% highlight %}
//some code
{% endhighlight %}


在Atom.io中,我试图编写一个正则表达式搜索来捕获这些内容。

我的第一次尝试是:
{% highlight .* %}([\S\s]+){% endhighlight %}

问题在于,在同一文档中有多个代码块,它还会捕获第一个代码块,直到最后一个代码块,而且全部匹配。

我虽然排除了{字符:
{% highlight .* %}([^\{]+){% endhighlight %}

但是问题在于某些代码块包含有效的{字符(例如function(){ ... })。

最佳答案

使用非贪婪匹配:

{% highlight .* %}([\S\s]+?){% endhighlight %}
                          ^

09-18 21:31