let str = `<div>
<h1>正则测试</h1>
<p class="">
<style>.icon{width:100%;}</style>
测试正则匹配替换
</p>
<br/>
<p class="">
<style>.icon{width:100%;}</style>
测试正则匹配替换
</p>
</div>`
以上速html代码段为字符串,进行正则匹配替换;把p标签及其内容替换成字符串aaa
匹配规则如下:
let reg = /(<p[\s\S]*?>)[\s\S]*?(<\/p>)/g
规则解释:
// 开头匹配 (<div.*?>)
// 结尾匹配 (<\/div>)
// 中间字符串匹配 [\s\S]*? 包括换行符等在内的所有字符
// ? 匹配前面的子表达式零次或一次
// * 匹配前面的子表达式零次或多次
// . 匹配除换行符 \n 之外的任何单字符
// \s 匹配任何空白字符,包括空格、制表符、换页符等等
// \S 匹配任何非空白字符
// [] 标记一个中括号表达式的开始
// () 标记一个子表达式的开始和结束位置
替换:
str.replace(reg, "aaa")
替换后结果:
<div>
<h1>正则测试</h1>
aaa
<br/>
aaa
</div>