多个 html 文件中的 Sublime Text 正则表达式 find/replace

Sublime Text regex find/replace within multiple html files

我正在使用 Sublime Text 2 进行一些查找和替换操作。我正在寻找仅将 h1 类 标记替换为 bootstrap 面包屑但不影响其中内容的正则表达式。每个 h1 标签都有不同的文本,并且有 700 多个文件,手动执行此操作非常困难!

例如,我想替换为:

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

为此:

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

"SOME CONTENT" 将是我想要保留的文本。

有可能吗?

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

<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></span>
</li>
</ol>

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

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

然后在替换字段中,使用带有 </code> 的捕获组,如下所示:</p> <pre><code><ol class="breadcrumb"> <li> <a href="#">anylink</a> </li> <li> <span></span> </li> </ol>

希望对您有所帮助。

再举一个例子(我认为没有必要包括结尾>):

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

捕获组 ([^<]*) 它说 “任何不是 < 零到更多次的东西”

然后你应该将捕获的组与</code>或<code>一起使用,(我不知道它在sublime上是如何工作的)

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