使用Regex for VSC选择具有特定类的所有完整div
我在一个大文件中有大量这样的代码,我只想用使用Regex for VSC选择具有特定类的所有完整div,regex,visual-studio-code,Regex,Visual Studio Code,我在一个大文件中有大量这样的代码,我只想用qt类删除所有div <div class="qt"> <div class="qy"> Standard Delivery</div> <div class="qu">€1.95/$2.99</div> </div> <div class="qe"
qt
类删除所有div
<div class="qt">
<div class="qy"> Standard Delivery</div>
<div class="qu">€1.95/$2.99</div>
</div>
<div class="qe" data-country="kw.svg">
<p class="qr"> Kuwait </p>
</div>
<div class="qt">
<div class="qy"> Standard Delivery</div>
<div class="qu">€1.95/$2.99</div>
<div class="qs"> Express Delivery</div>
<div class="qb">€2.95/$3.99</div>
</div>
<div class="qe" data-country="ml.svg">
<p class="qr"> Malawi </p>
</div>
标准交付
€1.95/$2.99
科威特
标准交付
€1.95/$2.99
快递
€2.95/$3.99
马拉维
我想选择所有具有
qt
类的div,直到VSC中匹配的结束div(查找并替换)。特别是考虑到我们要选择的div中有不同数量的其他
标记,我们该怎么做呢?正如我在上面的评论中提到的,如果您的代码的格式与您显示的部分类似,那么使用find/replace可以更轻松地执行此操作。例如:
(^\s*)[\s\s]*?(^\s*\n)
查找并替换为空
此表单要求您的内部div是
标准交付
其中整个元素位于一行上
看
如果这些内部div不一定是一行程序,那么这是我发现的最简单的版本,适合您的数据:
^\s*[\s\s]*?\n^\s*\n
看
为了解释后一种情况:
^\s*
查找qt
类div
[\s\s]*?\n^\s*\n
go,换行符或字符,直到连续两个
现在,这个版本确实需要在qt
类开场白之后的两个连续的
结束标记中,第二个表示qt
开始标记的结束标记。因此,如果您的数据可以如下所示:
标准交付
€1.95/$2.99
1.95欧元/2.99美元这对于regex来说可能太复杂了。我知道我该如何编程。如果你能告诉我你喜欢什么编程/脚本语言,我可以为你写一个快速的脚本。那太棒了。。我使用的是jsp,你应该100%使用XPath。关于JS起点,请参见我的答案。如果(一个大的IF)您的所有代码的格式都与您显示的一样好,那么(^\s*)[\s]*?(^\s*\n)
工作,因为每个qt
类的结尾
都在它自己的行上。看见也就是说,所有内部div都是一个衬里。否则,这将不起作用。这似乎更为健壮:(^\s*\n)(^\s*这是完美的,thanksI使用它来获得我也需要的东西,xms类带有任意数量的结束p标记和一个结束/div标记..工作起来很有魅力,使用了不同数量的p标记..感谢您的帮助!:^\s*[\s\s]*?\n^\s*\n