在文件中查找并使用标记包装 - Sublime

时间:2014-05-20 09:42:39

标签: html regex replace sublimetext2 sublimetext

我的网站上有很多链接,我想用一些标签包装,我可以使用RegEx轻松找到这些链接,但是当我用它们周围的标签替换时,我会#就像原来的href一样。

所以我可以这样找到它们:

<a class="button-link" (.+)>Back</a>

这会返回许多结果:

   96  <div class="form-group">
   97    <a class="button" href="RegistrationSubmit.html">Save and continue</a>
  *98:   <a class="button-link" href="../employer.html">Back</a>*
   99  </div>
   100  

但是如果我放入替换区域:

<p>
  <a class="button-link" (.+)>Back</a>
</p>

这将简单地用上面的代码替换每个实例。我应该把什么放在&#34;替换&#34;区域?目前我有这个:

enter image description here

非常感谢

1 个答案:

答案 0 :(得分:1)

  1. 请勿使用<a class="button-link" (.+)>选择您的代码。尝试将其与

    相匹配
    <a class="button-link" >Next</a><a class="button-link">Back</a>
    

    您将看到why

  2. 正则表达不是解析HTML的最佳工具,但如果您小心并且使用仅限于易于输入和手动使用,则可以使用

    <a class="button-link" ([^>]+)>Back</a>
    

    并替换为

    <p>
      <a class="button-link" \1>Back</a>
    </p>
    
  3. 您正在捕获第一个捕获组中的href:要在替换中将其回调,语法为\1

    [^>]表示&#34;任何字符,但>&#34;并且会阻止正则表达式出去&#34;当前标签。