我需要删除除<:p>之外的所有HTML标记
<sub>
标记var str = "something1
<sub>
something2
<div class='myclass'>something3</div>
</sub>
<div class='myclass'>something4</div>
something5
<div class='myclass'>something6</div>
<div class='myclass'>something7</div>
`<div>something8</div>`
something9";
预期输出:
/*
something1
<sub>
something2
something3
</sub>
something4
something5
<div class='myclass'>something6</div>
`<div>something8</div>`
something9
Here是我到目前为止所尝试过的:
/\n\s{0,3}<.*[^>]+|<sub>.*?<\/sub>|`.*?`/gm
答案 0 :(得分:0)
这可以通过正则表达式替换。将此正则表达式与mg
修饰符一起使用:
(\n\n .*|`[^`]+`|<\/?sub\b[^>]+>)|<[^>]+>
并使用$1
作为替代。
这有几个部分。捕获组找到您可能想要保留的所有HTML:
\n\n .*
一个空行,另一行以4个空格开头。`[^`]+`
Back`Ticks
中的内容。<\/?sub\b[^>]+>)
这符合sub
HTML元素,无论是打开还是关闭。其余的HTML元素将与<[^>]+>
匹配,后者将被丢弃。