网页学习体会

  • 首页
  • 个人博客
您的位置: 首页  >  IT文章  >  请问一个正则:匹配含有某个字符串的
标签

请问一个正则:匹配含有某个字符串的
标签

分类: IT文章 • 2024-07-20 21:35:01
请教一个正则:匹配含有某个字符串的<div>标签
假如有一段文本是:
<div><span id="id1"><a href="#">链接a</a></span><div>temp1</div></div>
<div><span id="id2"><a href="#">链接b</a></span><div>temp2</div></div>
<div><span id="id3"><a href="#">链接c</a></span><div>temp3</div></div>

我要根据"id2",找到这个字符串所属的直系div,并将这个div里面的a标签的超链接文本通过分组取出来

最终取出来的希望是这样的分组:

$0 <div><span id="id2"><a href="#">链接b</a></span><div>temp2</div></div>
$1 链接b

(第一组返回该条件字符串所属的div内容,第二组返回该div里面的超链接文本)

------解决方案--------------------
/<div><span\s*id="id2"><a\s*href="[^"]*">(.*?)</a></span>\S*</div>/gi
------解决方案--------------------
JScript code

            var str= '<div><span id="id1"><a href="#">链接a</a></span><div>temp1</div></div><div><span id="id2"><a href="#">链接b</a></span><div>temp2</div></div><div><span id="id3"><a href="#">链接c</a></span><div>temp3</div></div>';
            var re = /<div>.+?<a.+?>(.+?)<\/a>.+?<\/div>/gi;
            var tmp = [];
            var a = str.match(re);
            for(var i = 0, len = a.length; i < len; i++){
                tmp[i] = [];
                tmp[i].push(a[i]);
                a[i].match(re);
                tmp[i].push(RegExp.$1);
            }
            alert(tmp.length)
            
            alert(tmp[0][0])
            alert(tmp[0][1])
            
            alert(tmp[1][0])
            alert(tmp[1][1])
            
            alert(tmp[2][0])
            alert(tmp[2][1])

------解决方案--------------------
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<div id="demo" style="display:none;"></div>

<script type="text/javascript">
var html = '<div><span id="id1"><a href="#">链接a</a></span><div>temp1</div></div>\
<div><span id="id2"><a href="#">链接b</a></span><div>temp2</div></div>\
<div><span id="id3"><a href="#">链接c</a></span><div>temp3</div></div>';

function f(html, id) {
    document.getElementById('demo').innerHTML = html;
    
    var result = [];
    
    var obj = document.getElementById(id);
    if (obj.length < 1) result.push('Not found!');
    else {
        result.push('<div>' + obj.parentNode.innerHTML + '</div>');
        result.push(obj.getElementsByTagName('a')[0].innerHTML);
    }
    
    return result;
}

alert(f(html, 'id2'));
</script>
</body>
</html>

------解决方案--------------------
/<div><span\s*id="id2"><a\s*href="[^"]*">(.*?)</a></span>[\d\D]*?</div></div>/gi

相关推荐

  • 请问一个正则:匹配含有某个字符串的标签
  • 请问一个正则:匹配含有某个字符串的
    标签
  • 请教一个正则表达式,匹配所有Html标签外部的指定字符串
  • Linux(1)---常用命令 1、将tgz文件解压到指定目录: 2、删除正则匹配的文件 3、xargs 4、grep:正则,从大量的文件中找出含有特定字符的文件。 5、对比两个文件中内容的差别 6、wc命令用于计算字数 7、nohup后台不中断执行脚本命令 8、进入和退出服务器 9、linux删除大文件的前n行 10、linux 如何显示一个文件的某几行(中间几行) 12、让vim显示空格,及tab字符 vim 多行注释(转) 13. Linux查找文件内容所在位置 14.vim 查找文件某个字符串内容,采用 /  15. local关键字 16. ROOT=${1:-abc}  17. 在bash中,$( )与` `(反引号)都是用来作命令替换的。 18.Linux shell if [ -n ] 正确使用方法 linux 下shell中if的“-e,-d,-f”的用法 19、电脑硬件环境查看
  • 正则表达式怎么匹配包含有某个特定的字符串
  • 请教一个正则表达式,匹配所有Html标签外部的指定字符串
  • Golang正则表达式匹配并替换某个字符串后的第一个匹配项
  • 采取ext模式开始OSGi
  • 将同一页面post跟get获取的值传入form表单
    网站免责声明 网站地图 最新文章 用户隐私 版权申明
本站所有数据收集于网络,如果侵犯到您的权益,请联系网站进行下架处理。   

Copyright © 2018-2021   Powered By 网页学习体会    备案号:   粤ICP备20002247号