如何批量删除给定类的所有div的内容

问题描述 投票:0回答:1

我有一个固定的类“div”,它存在于我在 Visual Studio Code 上的所有 HTML 文件中。 这些div的内容也包含不同的东西。我想批量替换和删除这些 div。有没有办法做到这一点?

<div class="WinOLS__detail-right WinOLS__detail-right--logged-out">
    <span class="WinOLS__purchase-intro">File:<br>Paneli Tavuk Tarif</span>
    <span class="WinOLS__purchase-credits">2.5 kredi</span>
    <div class="Notice Notice--neutral">
        <div>
            Please <a href="../../account/tr/......." title="Login">login</a>
            or <a href="../../hesap/tr/kayit.html" title="Bir Hesap Oluştur">Bir Hesap Oluştur</a>
            bu dosyaya sahip olmak istiyorsan
        </div>
    </div>
</div>

我想删除所有具有类“WinOLS__detail-right WinOLS__detail-right--logged-out”的 div,如上所示。我无法使用查找和替换。因为Div里面有不同的内容。我要更改的所有 div 都具有相同的类但内容不同。我想删除所有具有相同类别的 div 及其内容。

我想替换整个div的内容,但是用代码搜索,没有找到结果

<div class="WinOLS__detail-right WinOLS__detail-right--logged-out">.+?</div>

<div class="WinOLS__detail-right WinOLS__detail-right--logged-out">(.+?)</div>

那没用:查找和替换

html visual-studio-code
1个回答
0
投票

您可以通过选择扩展来实现它:

你需要的是一个懂 HTML 的解析器。 VSC 有一个叫 Emmet 的。

使用的命令是Emmet:平衡(向外)

  • 打开文件
  • 转到文件顶部
  • 搜索特定的
    div
  • Emmet:平衡(向外)
  • 删除选择

将此添加到您的

settings.json
(全局或工作区)

  "multiCommand.commands": [
    {
      "command": "multiCommand.delete-WinOLS-detail",
      "sequence": [
        "cursorTop",
        { "command": "moveby.regex",
          "args": {
            "regex": "<div class=\"WinOLS__detail-right WinOLS__detail-right--logged-out\"",
            "properties": ["next", "end"],
            "checkCurrent": true
          }
        },
        "editor.emmet.action.balanceOut",
        "deleteRight"
      ]
    }
  ],
  "commandOnAllFiles.commands": {
    "delete-WinOLS-detail": {
      "command": "multiCommand.delete-WinOLS-detail",
      "includeFileExtensions": [".html"],
      "includeFolders": ["/win-ols/"],
      "label": "Delete div.WinOLS-detail"
    }
  }

AFAIK 没有条件执行命令。

文件 must 有你搜索的 div,否则整个 html 文件将被清除。使用

grep
您可以获得包含 div 的文件的文件名,将这些文件移动到单独的文件夹并在此文件夹上应用命令。

或者复制整个文件夹树,去掉没有div的文件,在文件夹树复制上应用命令,将处理后的文件移回原处。所有这些都可以通过一些终端(bash)命令来完成。

在我的测试设置中,我将 html 文件放在文件夹

win-ols
中。如果要处理工作区中的所有 html 文件,请更改目录或删除属性
includeFolders

moveby.regex
是多光标感知的,但是
cursorTop
命令会将所有光标折叠为顶部的 1。所以只有第一个 div 会被找到。

  • 在命令面板中执行命令将 1 个或多个命令应用于工作区中的所有文件
  • 选择:删除div.WinOLS-detail
  • 观看每个文件加载和 div 删除

您可能会留下一个空行,您可以添加其他命令,具体取决于此删除的 div 周围的所有文件是否相同。

© www.soinside.com 2019 - 2024. All rights reserved.