200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 使用正则表达式 匹配 HTML 标签内的内容

使用正则表达式 匹配 HTML 标签内的内容

时间:2018-09-05 19:17:26

相关推荐

使用正则表达式 匹配 HTML 标签内的内容

正则表达式如下

/(?<=((<[a-zA-Z-]+?){0,1}>))([\s\S]+)(?=([\s]{0,1}<\/[a-zA-Z-]+(>{0,1})))/g

测试例子:

var regexp = /(?<=((<[a-zA-Z-]+?){0,1}>))([\s\S]+)(?=([\s]{0,1}<\/[a-zA-Z-]+(>{0,1})))/g// (以下都是常见的格式化后的代码)// 例子1var str1 = `<div>hello</div>`console.log(str1.match(regexp))// ['hello']// 例子2var str2 = `<div>hello</div>`console.log(str2.match(regexp))// ['\n hello\n']// 例子3var str3 = `<div>hello</div>`console.log(str3.match(regexp))// ['hello']// 例子4var str4 = `<div>hello</div>`console.log(str4.match(regexp))// ['hello']// 例子5var str5 = `<divclass="test"id="test"onClick="fns">hello</div>`console.log(str5.match(regexp))// ['\n hello\n']

介绍

其中,这个正则表达式分为三个部分

(?<=((<[a-zA-Z-]+?){0,1}>))([\s\S]+)(?=([\s]{0,1}<\/[a-zA-Z-]+(>{0,1})))

第一部分用来匹配开始标签或者换行的开始标签的最后一个字符>

第二部分就是标签内的内容

第三部分是标签的结束标签或者</加标签名

第一部分(?<=y)x和第三部分x(?=y)用到了零宽断言,感兴趣的可以看这里正则表达式 零宽断言

最后

vscode里面使用正则表达式搜索的话,可以把零宽断言去掉,即:

(((<[a-zA-Z-]+?){0,1}>))([\s\S]+)(([\s]{0,1}<\/[a-zA-Z-]+(>{0,1})))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。