我有一些 html 标签以 开头<p class="mb-40px">
并以 结尾,</p>
第一个标签中包含一些其他标签,例如</li>
</ul>
</div>
和spaces
,\n
如您所见。
<p class="mb-40px"></g></svg> </a>
</li>
</ul>
</div>
</p>
<p class="mb-40px">Foarte frumos lucru</p>
<p class="mb-40px">I love cars</p>
我想找到并删除所有 html 标签,例如第一个包含</li>
</ul>
</div>
输出应该是:
<p class="mb-40px">Foarte frumos lucru</p>
<p class="mb-40px">I love cars</p>
我的解决方案并不好:
寻找:(?=<p class="mb-40px">)[\s\S]*?</li></div>|</ul>[\s\S]*?</p>
替换为:LEAVE EMPTY
答案1
这将删除所有<p class="mb-40px">
仅包含空标签或空格的标签:
- Ctrl+H
- 找什么:
<p class="mb-40px">(?:<.+?>|\s)+?</p>\R*
- 用。。。来代替:
LEAVE EMPTY
- 查看 环绕
- 查看 正则表达式
- Replace all
解释:
<p class="mb-40px"> # start tag
(?: # non capture group
<.+?> # any tag
| # OR
\s # any kind of space
)+? # end group, must appear 1 or more times, not greedy
</p> # end tag
\R* # 0 or more any kind of linebreak
截图(之前):
截图(之后):
答案2
使用以下内容:
- Ctrl+H
- 找什么:
^(?!.*(</p>)).*|\s+</p>
- 用。。。来代替:
LEAVE EMPTY
- 查看 相符
- 查看 环绕
- 查看 正则表达式
- 取消选中
. matches newline
- Replace all
答案3
另一个更完整的解决方案是可以处理里面的其他标签
<p class="mb-40px"> ... </p>
。
<p class="mb-40px">[^<>]*</p>\R?(*SKIP)(*F)|.
你可以尝试一下这里并附有解释。
意识到全部您的文件将被删除!除非<p class="mb-40px"> ... </p>