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


使用正则表达式 匹配 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

// (以下都是常见的格式化后的代码)

// 例子1
var str1 = `<div>hello</div>`
console.log(str1.match(regexp))
// ['hello']

// 例子2
var str2 = `<div>
  hello
</div>`
console.log(str2.match(regexp))
// ['\n  hello\n']

// 例子3
var str3 = `<div
>hello</div>`
console.log(str3.match(regexp))
// ['hello']

// 例子4
var str4 = `<div
>hello</div
>`
console.log(str4.match(regexp))
// ['hello']

// 例子5
var str5 = `<div
  class="test"
  id="test"
  onClick="fns"
>
  hello
</div>`
console.log(str5.match(regexp))
// ['\n  hello\n']

介绍

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

  1. (?<=((<[a-zA-Z-]+?){0,1}>))
  2. ([\s\S]+)
  3. (?=([\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})))


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 正则表达式匹配标签内的内容 正则表达式匹配html标签里面的内容 正则表达式匹配html标签 javascript正则表达式:匹配所有html标签 javascript正则表达式:匹配所有html标签 正则表达式匹配Html标签 使用正则表达式匹配HTML 下各种标签 </a> <a class='list-group-item' href="/blog/2bf0bf1.html" title="(转)c# .net 使用正则表达式匹配嵌套Html标签"> <i class="icon-file"></i> (转)c# .net 使用正则表达式匹配嵌套Html标签 </a> <a class='list-group-item' href="/blog/aaca171.html" title="使用正则表达式匹配"> <i class="icon-file"></i> 使用正则表达式匹配 </a> <a class='list-group-item' href="/blog/80ac0f1.html" title="正则表达式匹配a标签或div标签"> <i class="icon-fire"></i> 正则表达式匹配a标签或div标签 </a> <div id="right_float_ad" class="ad"> </div> </div> </div> </div> </div> <div class="clear"> </div> <div class="fbar" style="z-index:100"> <div class="span7" style="color:grey;font-size:12px;"> </div> <div class="pull-right"> <span><a href="http://beian.miit.gov.cn" rel="nofollow" target="_blank">粤ICP备18138465号</a>  </span><span>© 2018-2025 CODEPRJ.COM </span> </div> </div> <script src="/js/code.js?version=20250514"></script> <script> function buffer(a, b, c) { var d; return function() { if (d) return; d = setTimeout(function() { a.call(this), d = undefined }, b) } } (function() { function e() { var d = document.body.scrollTop || document.documentElement.scrollTop; d > b ? (a.className = "div1 div2", c && (a.style.top = d - b + "px")) : a.className = "div1" } var a = document.getElementById("float"); if (a == undefined) return ! 1; var b = 0, c, d = a; while (d) b += d.offsetTop, d = d.offsetParent; c = window.ActiveXObject && !window.XMLHttpRequest; if (!c || !0) window.onscroll = buffer(e, 50, this) })(); </script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?85c5e8e7b6167edfc87cb0607142e870"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>