最小化sublime文本正则表达式搜索和替换中的子表达式

时间:2014-03-21 07:49:46

标签: regex sublimetext2

我正在尝试替换

<div id="logo"> <a href="index.html"><img src="images/Logo.png" width="205" height="50"  alt="logo"/></a><a class="menu-hider"></a></div>

<div id="logo"> <a href="index.html"><img src="{{ asset( 'images/Logo.png' }}" width="205" height="50"  alt="logo"/></a><a class="menu-hider"></a></div>

在Sublime文本中。基于文档,我认为这将起作用 搜索

src=\"(.*)\"

替换

src=\"{{ asset('$1') }}\"

然而不是Sublime搜索捕获

src="images/Logo.png"

它捕获最长的子表达式并找到最后一次出现的&#34;

src="images/Logo.png" width="205" height="50"  alt="logo"/></a><a class="menu-hider"

这不是我期待的第一个。有什么问题?

1 个答案:

答案 0 :(得分:4)

这是因为.*是贪婪的,这意味着它会尽可能地匹配,直到达到\"。通过添加?

将其更改为惰性表单
src=\"(.*?)\"
         ^

regex101 demo

或使用否定的类:

src=\"([^\"]*)\"
       ^^^^^

regex101 demo

后者将匹配除"以外的任何字符,因此无法与"匹配。

注意:我不记得要求在ST2中转义引号。我现在无法测试它,但它应该工作正常而不会被转义。