首页 新闻 会员 周边

正则表达式匹配带有style,class 的HTML标签

0
悬赏园豆:20 [已解决问题] 解决于 2017-09-08 14:11

比如:

<div class="view_main1" style="padding: 5px 20px 0px; margin: 0px; font-family: 宋体, san-serif;">
<h2 style="font-size: 22px; font-weight: normal; color: #266DC0; font-family: 微软雅黑, 黑体, Helvetica, sans-serif;
text-align: center;">
2015国庆节去哪里玩人少
</h2>
</div>
<div class="crl" style="padding: 0px; margin: 0px; font-family: 宋体, san-serif;">
</div>
<div class="wnl_leftview01" style="padding: 0px; margin: 0px auto; text-align: center;
font-family: 宋体, san-serif;">
</div>
<div class="crl" style="padding: 0px; margin: 0px; font-family: 宋体, san-serif;">
</div>
<p>
<br />
</p>
<p style="text-indent: 10px;">
<strong>国庆中秋去哪玩?8天长假带你嗨</strong>
</p>
<p style="text-indent: 10px;">
<strong>导读:</strong>对于上班族来说,每年最高兴的事情就是国庆节的放假了,因为国庆节放假是一年当中最长的假期,但令人苦恼的是国庆节去到哪都是人挤人,想要知道2015国庆节去哪里玩人少吗?那就赶快跟随万年历小编来了解一下吧!</p>
<p style="text-indent: 10px;">
<strong>十一去哪里旅游人少?</strong>
</p>
<p style="text-indent: 10px;">
推荐一:西江千户苗寨</p>
<p style="text-indent: 10px;">
西江千户苗寨,是全世界最大的苗寨。它一直安静的坐落在贵州省黔东南的位置,保留着它独有的“原始生态”。它就像是一座露天博馆,苗族传统文化在这里一览无余。</p>
<p style="text-indent: 10px;">
来西江千户苗寨有4件事不可以错过:</p>
<p style="text-indent: 10px;">
1、住一晚吊脚楼;2、穿一次苗族服饰;3、享用苗家晚餐;4、买苗族银饰做纪念品</p>
<p style="text-indent: 10px;">
西江千户苗寨的最佳旅游时间是春末夏初,所以秋季来这里是淡季,人不多,却别有一番滋味。吊脚楼的前后,巨大枫木红叶片片飘落,处处是丰收的景色,夕阳下,红彤彤的,看了就满心欢喜。晚上去享用苗家晚餐,丰收的餐桌上菜肴诱人,苗家姑娘的表演更是秀色可餐。</p>
<p align="center" style="text-indent: 10px;">
<img src="http://www.tianqi.com/upload/article/15-07-03/hcWq_150703084939_1.jpg"
alt="" width="544" height="338" align="" border="0" />
</p>
<h2 style="text-indent: 10px;">
推荐二:黑龙江伊春有人这么说:所谓伊春,在水一方。</h2>
<p style="text-indent: 10px;">
伊春是一座天然的森林氧吧,这里的树木覆盖率高,夏季的时候凉爽自然不必说了,秋季的时候,走进树林,就像走进了黄金城堡,透过树叶间的阳光,让你有一种“时光再慢些吧”感觉。冬季的时候,这里的树枝都是白色的,或是雪,或是冰,晶莹感十足。</p>
<p style="text-indent: 10px;">
伊春是个一年四季都可以去的地方,所以没有淡旺季之分,自然不会过度拥挤,而且每一个季节去这里可以看到不一样的美景,十一去这里,就可以去静静聆听“光荣岁月”。</p>
<p align="center" style="text-indent: 10px;">
<img src="http://www.tianqi.com/upload/article/15-07-03/SvIJ_150703083942_1.jpg"
alt="" width="544" height="338" align="" border="0" />
</p>
<h2 style="text-indent: 10px;">
推荐三:锦溪古镇知道锦溪古镇的人比较少,一般人都是去了江南其他古镇才慢慢了解有个锦溪古镇。</h2>
<p style="text-indent: 10px;">
其实锦溪古镇是一个有着2500多年历史的江南水乡古镇,它西面环湖,是一个被水保护着的地方,这里有“三十六座桥,七十二只窑”的传说,这里有“金波玉浪”之称,这里有着名的建筑物十眼长桥。</p>
<p style="text-indent: 10px;">
十一去这里可以看到特色节目表演哦:</p>
<p style="text-indent: 10px;">
1、水上丝竹巡演——乘坐锦溪独特手摇船,聆听江南悠扬小调2、丝弦宣卷演出——江苏非物质文化遗产丝弦宣卷传承人领衔主演3、鱼鹰捕鱼表演——充分感受最古老的捕鱼方式4、传统民俗表演——尽情体验江南水乡风情。</p>
<p>
<br />
</p>
<h2>
</h2>

根据正则表达式从上面的内容段匹配出所有h2标签里面的内容

字里行间的主页 字里行间 | 初学一级 | 园豆:134
提问于:2017-09-08 11:28
< >
分享
最佳答案
0

<(\w+?)\s+[^<>]*?((?=class)|(?=style))[^<>]*?>([^<>]*?)</\1>

匹配结果:

<h2 style=\"text-indent: 10px;\">推荐二:黑龙江伊春有人这么说:所谓伊春,在水一方。</h2>

<h2 class=\"name\">推荐二:黑龙江伊春有人这么说:所谓伊春,在水一方。</h2>

然后可以通过匹配分组获取标签里面的内容,大概是第四个分组

收获园豆:20
海之殇 | 菜鸟二级 |园豆:500 | 2017-09-08 13:51

 先感谢!但是不行!匹配不了h2标签的内容!

字里行间 | 园豆:134 (初学一级) | 2017-09-08 13:55

@会编程的毛毛虫: 标签里的内容可以通过分组获取,一般正则表达式的多个匹配结果里面都会有1个以上分组

海之殇 | 园豆:500 (菜鸟二级) | 2017-09-08 13:57

@会编程的毛毛虫: 你是只要h2标签的?

海之殇 | 园豆:500 (菜鸟二级) | 2017-09-08 13:58

@会编程的毛毛虫:<(h2)\s+[^<>]*?((?=class)|(?=style))[^<>]*?>([^<>]*?)</\1>

这个是只匹配h2标签的

海之殇 | 园豆:500 (菜鸟二级) | 2017-09-08 14:00

@海之殇: 嗯,也就是说有其他的标签就匹配不出来了

字里行间 | 园豆:134 (初学一级) | 2017-09-08 14:01

@海之殇: 上面这个把H2标签匹配出来了,没有匹配出内容

字里行间 | 园豆:134 (初学一级) | 2017-09-08 14:03

@会编程的毛毛虫: 你用的什么语言来弄的,常用的语言都可以通过分组获取到里面的内容的,我上面这个正则表达式已经把标签里的内容分为一组了

海之殇 | 园豆:500 (菜鸟二级) | 2017-09-08 14:05

@海之殇: 非常感谢!嗯,可以了,第四个分组。C#语言!

字里行间 | 园豆:134 (初学一级) | 2017-09-08 14:06
其他回答(1)
0

你是要匹配h2标签里面的内容还是匹配style

小西子 | 园豆:72 (初学一级) | 2017-09-08 12:29

 匹配带有h2标签里面带有style样式的内容或者 匹配带有h2标签里面带有class类样式的内容,标签里面没有的style的也可以匹配

支持(0) 反对(0) 字里行间 | 园豆:134 (初学一级) | 2017-09-08 13:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册