正则表达式匹配HTML标签之间的内容
发布时间:2025-05-20 22:07:50 发布人:远客网络
一、正则表达式匹配HTML标签之间的内容
1、(?<=>)[^<>]+(?=<)
2、String a="<style type=\"text/css\"> div \n"+
3、"{ margin: 0; padding: 0; outline: 0;}</style>";
4、我如何把这一句取出来呢,包括标签。
5、用正则表达式:<style([\\s\\S]*)</style>
6、var str='<p class="odd" id="odd">123</p>';
7、var pattern=/<\/?[a-zA-Z]+(\s+[a-zA-Z]+=".*")*>/g;
8、console.log(str.match(pattern));
9、var str='<p class="odd" id="odd">123</p>';
10、var pattern=/<[^>]+>/g;
11、console.log(str.match(pattern));
12、var str='<input type="text" value=">" name="username"/>';
13、var pattern=/<(?:[^"'>]|"[^"]*"|'[^']*')*>/g;
14、console.log(str.match(pattern));
15、说明:()表示捕获分组,()会把每个分组里的匹配的值保存起来,使用$n(n是一个数字,表示第n个捕获组的内容)
16、(?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来
17、没有引用的需求的话,采用非捕获性分组,更为简洁;
18、var str='<input type="text" value=">" name="username"/>';
19、var pattern=/<(?:[^"'>]|(["'])[^"']*\1)*>/g;
20、console.log(str.match(pattern));
二、给标签添加正则表达式的属性是什么
给标签添加正则表达式的属性有:
1、Global属性,设置或返回一个Boolean值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。
2、IgnoreCase属性,设置或返回一个Boolean值,指明模式搜索是否区分大小写。
3、Pattern属性,设置或返回被搜索的正则表达式模式。这是一个最重要的属性,我们主要是设置这个属性来实现数据校验的。
三、用正则表达式得到某个div标签内部的div标签中的内容
1、先说结论:极度不推荐你使用这样的正则去从html中提取相关内容。
2、除非,你确保你的代码,使用正则表达式去匹配html内容的代码,所需处理的html是很简单的,内容很少的,嵌套很少的,否则,稍微复杂点的html代码,N多标签,甚至本身html就是不完整的,标签有误的。那么通过写正则表达式去处理的话,就是极其繁琐,效率比较低的。
3、使用相关的,专门解析html的库去处理html
4、比如Python中,使用BeautifulSoup:
5、【总结】Python的第三方库BeautifulSoup的使用心得
6、其他语言,也有其他对应的处理html的库。
7、单独对于你这个,特定的,相对比较简单的,只有一级内部嵌套的div的写法,可以写成:
8、"<div[^>]+>.+?<div>(.+?)</div></div>", re.I
9、#<div[^>]+>.+?<div>(.+?)</div></div>#i
10、/<div[^>]+>.+?<div>(.+?)<\/div><\/div>/i
11、总之,还是不推荐用正则处理复杂的html。
12、刚专门给你写了个帖子,自己去看吧:
13、【整理】关于用正则表达式处理html代码方面的建议
14、(此处不能贴地址,请用google搜标题,即可找到帖子地址)