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

2024-12-01 02:38:18
推荐回答(3个)
回答1:

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

假如html标签里面有一句:

String a = "";

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

用正则表达式:

扩展资料:

正则表达式匹配HTML标签

方法一:

var str = '

123

';

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

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

方法二:

var str = '

123

';

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

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

方法三:

var str = '';

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

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

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

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

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

方法四:

var str = '';

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

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

回答2:

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


试试, group3就是结果.

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

回答3:

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