如何在VS Code中批量删除指定类的div及其内容?
解决VS Code批量删除指定class的div及其内容的问题
你的正则没效果,核心原因是默认正则里的.不匹配换行符,而这些div的内容大概率跨了多行,导致无法完整匹配。按以下步骤操作就能解决:
打开VS Code的全局查找替换面板(快捷键
Ctrl+Shift+F),点击查找框右侧的.*按钮,开启正则匹配模式。使用支持换行匹配的正则表达式进行查找:
方案1(兼容性好,无需额外修饰符):<div class="WinOLS__detail-right WinOLS__detail-right--logged-out">[\s\S]+?</div>这里
[\s\S]表示匹配所有空白(包括换行)和非空白字符,替代了原本的.,能覆盖跨多行的内容。方案2(单行模式修饰符):
(?s)<div class="WinOLS__detail-right WinOLS__detail-right--logged-out">.+?</div>(?s)是JavaScript正则的单行模式修饰符,开启后.会匹配换行符,效果和方案1一致。替换框留空,点击「Replace All in Files」按钮,即可批量删除所有符合条件的div及其内部内容。
如果遇到class属性顺序或空格不固定的情况(比如类名顺序调换、多了空格),可以把正则里的class部分改成更灵活的写法:
(?s)<div class="(?:WinOLS__detail-right\s+WinOLS__detail-right--logged-out|WinOLS__detail-right--logged-out\s+WinOLS__detail-right)">.+?</div>
这样不管两个类名的顺序如何,都能匹配到。
内容的提问来源于stack exchange,提问作者Home
相关产品推荐
相关产品推荐

