在 notepad++ 中用行删除结束标记 (HTML)

Delete Closing Tags with line in notepad++ (HTML)

如果在记事本++中我想删除一个上面有< div>标签的行,有没有办法自动删除包含< /div>的结束行而不删除中间的线条?

所以在这个例子中删除第 1 行和第 18 行,同时保留第 2 到 17 行

代码图片位于:http://i.imgur.com/UdllZqY.png

据我所知,在 notepad++ 中做不到这一点。

您不能 select 多个文本范围,只能是一个连续的文本块。不幸的是,要删除文本,您必须 select 它并且由于没有多个范围 selection ,因此无法执行所需的删除操作。

有插件可以找到匹配的标签,将语言更改为HTML也会高亮显示匹配的标签。这将让您轻松查看匹配标签的位置,但您仍然需要 select 并手动删除匹配标签。

这个解决方案有点复杂,完全可以在记事本++中完成

  1. 确保安装了 HTML 标签插件。这可以通过进入插件 > 插件管理器 > 显示插件管理器,selecting 名为 HTML 标签的插件并安装它(如果你还没有的话)来完成。或者从 here

  2. 下载手动安装
  3. 将文本光标放在要删除的标签的开始或结束标签上,然后按 CTRL+SHIFT+T。这将 select 整个元素及其所有子元素

  4. 按 CTRL+H 调出查找和替换 window.
    ->Select正则表达式模式,
    ->确保选中'In Selection',
    ->在 'find what' 文本框
    中使用表达式 (?s)\A<[^>]*>(.*?)<[^>]*>\Z -> 并在 'replace with' 文本框中替换 </code>。</p></li> <li><p>现在按全部替换按钮删除第一个和最后一个标签。</p></li> </ol> <p>对此类的任何其他替换重复步骤 2 到 4。</p> <p>使用此方法的例子:</p> <pre><code><div class="col-md-4 sidebar"> <div class="panel panel-default"> <div class="panel-heading"> News Feed </div> <div class="panel-body"> Past Posts </div> </div> <p class="lead">News feed</p> <ul> <li>post 5</li> <li>post 4</li> <li>post 3</li> <li>post 2</li> <li>post 1</li> </ul> </div>

    变为:

        <div class="panel panel-default">
            <div class="panel-heading">
                News Feed
            </div>
            <div class="panel-body">
                Past Posts
            </div>
        </div>
        <p class="lead">News feed</p>
        <ul>
            <li>post 5</li>
            <li>post 4</li>
            <li>post 3</li>
            <li>post 2</li>
            <li>post 1</li>
        </ul>