正则表达式匹配HTML标签之间的内容

如:
<div class='view-field view-data-node-title'><a href="/node/3856">[Number] 3ax [5Href] URL,cc#aa #bs/3c6h.</a></div>
html标签内容有“,”、"."、"["、"]"、"/"这些符号
我要匹配得到结果:[Number] 3ax [5Href] URL,cc#aa #bs/3c6h.
哪位好心人愿意花点时间帮我解决了,我的水平写不出来(弄了三个小时了就得到这么一个“>[a-zA-Z1-9\\s]+<”...匹配不到),谢谢了。
忘了说了,标签之间只有英文,div和a标签不是固定的,可能是其他的标签.......请测试一下能否通过(C#使用的)

(?<=>)[^<>]+(?=<)

假如html标签里面有一句:

String a = "<style type=\"text/css\"> div \n" +

"{ margin: 0; padding: 0; outline: 0; }</style>";

我如何把这一句取出来呢,包括标签。

正则表达式:<style([\\s\\S]*)</style>

扩展资料:

正则表达式匹配HTML标签

方法一:

var str = '<p class="odd" id="odd">123</p>';

var pattern = /<\/?[a-zA-Z]+(\s+[a-zA-Z]+=".*")*>/g;

console.log(str.match(pattern));

方法二:

var str = '<p class="odd" id="odd">123</p>';

var pattern = /<[^>]+>/g;

console.log(str.match(pattern));

方法三:

var str = '<input type="text" value=">" name="username" />';

var pattern = /<(?:[^"'>]|"[^"]*"|'[^']*')*>/g;

console.log(str.match(pattern));

说明:()表示捕获分组,()会把每个分组里的匹配的值保存起来,使用$n(n是一个数字,表示第n个捕获组的内容)

(?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来

没有引用的需求的话,采用非捕获性分组,更为简洁;

方法四:

var str = '<input type="text" value=">" name="username" />';

var pattern = /<(?:[^"'>]|(["'])[^"']*\1)*>/g;

console.log(str.match(pattern));

</script>

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-15

\<([a-zA-Z]{1,}) +class='view-field view-data-node-title'\> *\<([a-zA-Z]{1,}) +.*\>(.*)\</\2\>\</\1\>


试试, group3就是结果.

定位时把Class 考虑进去了, 因为不知道你的业务具体什么样.  如果你的标签连 class 这个属性都没有的话, 把 那个 去掉.

追问

不是特定匹配,而是任何一段html标签都能匹配,可以去掉标签这样实现,也能直接获取之间的内容这样实现

追答

你写几个边界的例子,
这样说不容易理解.

本回答被提问者和网友采纳
第2个回答  2014-12-09
(?<=>)[^<>]+(?=<)

正则表达式匹配HTML标签之间的内容
假如html标签里面有一句:String a = "<style type=\\"text\/css\\"> div \\n" + "{ margin: 0; padding: 0; outline: 0; }<\/style>";我如何把这一句取出来呢,包括标签。用正则表达式:<style([\\\\s\\\\S]*)<\/style>

正则匹配html开始标签和结束标签
1、匹配任意闭合HTML标签的正则表达式 <(?<HtmlTag>[\\w]+)[^>]*?>((?<Nested><\\k<HtmlTag>[^>]*>)|<\/\\k<HtmlTag>>(?<-Nested>)|.*?)*<\/\\k<HtmlTag>>2、如果只想匹配div标签,可以使用下面的正则表达式:<(?<HtmlTag>div)[^>]*?>((?<Nested><\\k<HtmlTag>[^>]*>)|<...

VB正则表达式提前html标签内容
False表示仅匹配第一个符合项 .IgnoreCase = False 'True表示不区分大小写, False表示区分大小写 .Pattern = `content="[^"]+"` '匹配字符模式 Set mMatches = .Execute(TargetRange.Text) '执行正则查找,返回所有匹配结果的集合,若未找到,则为空 For Each mMatch In mM...

求个正则表达式,匹配html标签内的style属性
匹配用双引号的属性:style="[^\\"]*?"再来一次单引号的:style='[^\\']*?'

java 如何利用正则表达式只保留html里面的<p><\/p>标签里面的内容
正则表达式:<p.*?>(.*?)<\/p> group(1)为正文内容。输出时加上\\n就行了 import java.util.regex.*;public class Test{ public static void main(String[] args){ String str="<p style=\\"font-size:1.3em;font-weight:bold\\">No page with that title exists.<\/p> ";String regex=...

正则表达式获取html标签
用正则 var str = '<tr><td class="ppprod_lefttd ppprod_cell">上次余额:<\/td><td class="ppprod_confirm ppprod_cell" id=""><span name="item22" id="item22" delim="" class="" >114.74<\/span> <\/td><\/tr>';alert(str.match(\/^.*>(\\d+(\\.?\\d+)?)<.*$\/)[1]...

...标签,div可能还有样式或id,如果用正则表达式匹配,求高手
简单的操作可以用正则去匹配,但是负责的,你就要重新看待问题?html是dom结构,你完全可以用js操作dom的方法就可以获取所有的div,而且很方便,用正则表达式,多次一举,而且效率不高;用jquery匹配一个页面的所有的div例子:(function(){ \/\/就这么一句话,就获取了页面所有的div var divs = $("div")...

正则表达式怎么匹配4-10字符,包含汉字 和点号·
正则表达式:>([^<>]+)< 分组1匹配的内容就是标签里的内容 解释:> #匹配< ([^<>]+) #匹配标签之间的内容 < #匹配>

用正则表达式得到某个div标签内部的div标签中的内容
原因:除非,你确保你的代码,使用正则表达式去匹配html内容的代码,所需处理的html是很简单的,内容很少的,嵌套很少的,否则,稍微复杂点的html代码,N多标签,甚至本身html就是不完整的,标签有误的。那么通过写正则表达式去处理的话,就是极其繁琐,效率比较低的。比较好的做法是:使用相关的,专门...

怎么用正则表达式提取'>之后<\/之前的文本内容?
,应用上述正则表达式后,将准确提取出“自定义”三个字,排除了HTML标签的干扰。确保在实际操作中准确定位并提取所需文本内容。感谢那位提供截图的匿名用户,其贡献帮助他人解决了问题,展现出了社区互助精神。在使用正则表达式处理文本时,明确目标、合理使用匹配规则至关重要。希望以上解释能够帮助你更好地...

相似回答