首先放结果:
(\n|[ \t])*<([^>"']*|"[^"]*"|'[^']*')*>(\n|[ \t])*
创作步骤:
- 最简单最基础的匹配模式:
<[^>]*>
- 如果标签中的文本属性中含有 <> 字符怎么办呢?一开始考虑用平衡组,想了一下感觉杀鸡用牛刀,直接选用了 "[^"]*" 模式:
<([^>"]*|"[^"]*")*>
- 同理,增加 '[^']*' 模式:
<([^>"']*|"[^"]*"|'[^']*')*>
- 按道理到了这里就可以结束了,如果想要一次性到位将多余的换行和前导后导空白也匹配上的话可以略做修饰:
(\n|[ \t])*<([^>"']*|"[^"]*"|'[^']*')*>(\n|[ \t])*
- 将所有匹配到的文本全部替换为空文本即可。