繁体   English   中英

Sublime Text正则表达式在多个html文件中查找/替换

[英]Sublime Text regex find/replace within multiple html files

我将Sublime Text 2用于某些查找和替换操作。 我正在寻找一个仅替换h1 classes标记的正则表达式来引导面包屑,但不影响其中的内容。 每个h1标签都有不同的文本,并且由于有700多个文件,因此手动进行这项工作很辛苦!

例如,我想替换为:

<h1 class="xyz">SOME CONTENT</h1>

对此:

<ol class="breadcrumb"> 
<li>
<a href="#">anylink</a>
</li>
<li>
<span>SOME CONTENT</span>
</li>
</ol>

该“某些内容”将是我要保留的文本。

有可能的?

我正在使用以下代码查找标签和内容:

<h1 class="xyz">[^<>]*</h1>

但是,如果我替换为:

<ol class="breadcrumb"> 
<li>
<a href="#">anylink</a>
</li>
<li>
<span>[^<>]*</span>
</li>
</ol>

它用表达式[^ <>] *替换文本(我要保留)。

任何想法?

您可以这样实现:

找到使用:

<h1 class="xyz">([^<>]*)</h1>

用。。。来代替 :

<ol class="breadcrumb"> 
<li>
<a href="#">anylink</a>
</li>
<li>
<span>$1</span>
</li>
</ol>

在搜索字段中,您需要使用方括号将所需的文本捕获到组中:

<h1 class="xyz">([^<>]*)</h1>

然后在replace字段中,将捕获的组与$1一起使用,如下所示:

<ol class="breadcrumb"> 
<li>
<a href="#">anylink</a>
</li>
<li>
<span>$1</span>
</li>
</ol>

希望能帮助到你。

这是另一个示例(我认为没有必要包含结束> ):

<h1 class="xyz">([^<]*)</h1>

捕获组([^<]*)的说法“不是<零的次数的次数”

然后,您应该将捕获的组与\\1$1 (我不知道它如何在sublime上工作)

<ol class="breadcrumb"> 
   <li>
      <a href="#">anylink</a>
   </li>
   <li>
      <span>\1</span> <!-- or $1, the one sublime text uses -->
   </li>
</ol>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM