<a[^>]+href\s*=\s*[\"\']?([^\"\' ]+)[\"\']?.*?\>([\w\W]*?)\<\/a\>[\w\W]*?<font[^>]*?>([\w\W]*?)<\/font>这个正则能匹配
<a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a>但是无法匹配
<a href="###"><a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a></a>即,a标签中嵌套a标签的情况
达人帮忙解决下~~

解决方案 »

  1.   

    LZ你给的A标签的字符串匹配吗?
    <a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a>
    <script>
    var str = '<a href="###"><a href="#1">test link 1</a><a href="#1">test link 2<font>2</font></a><font>3</font></a>';
    while(true){
        var re = new RegExp("<a\\b[^>]*>([^<]*|<[^a][^<]*|<\/[^a][^<]*)*</a>","ig");
        if(re.test(str)){
            var arr = str.match(re);
            for(var i=0;i<arr.length;i++){
             alert(arr[i]);
            }
            str = str.replace(re,"");
        }else{ 
            break;
        }
    }
    </script>
      

  2.   

    <a[^>]+href\s*=\s*[\"\']?([^\"\' ]+)[\"\']?[^>]*>([^\<]*?)<\/a>[\w\W]*?<font[^>]*?>([\w\W]*?)<\/font>
      

  3.   

    to 1楼:现在抓取一个页面中就有这样的情况,不然我不会去钻牛角尖...
    to 2楼:还没测试~~等下研究下~3Q
    to 3楼:你这种我试过了~~不能满足~补充...这个页面上有很多种情况...
    <a href="#1">test link 1</a><font>date1</font>
    <a href="#2"><font color="#ff0000">test link 2</font></a><font>date2</font>
    <a href="#3"><a href="#4"><font color="#ff0000">test link 4</font></a><a href="#5"><strong>test link 5</strong></a></a>差不多就这些了~~~
    我现在想得到的格式是<link>|||<text>|||<date>继续求助达人...可再加分。
      

  4.   

    to 1楼:现在抓取一个页面中就有这样的情况,不然我不会去钻牛角尖...
    to 2楼:还没测试~~等下研究下~3Q
    to 3楼:你这种我试过了~~不能满足~补充...这个页面上有很多种情况...
    <a href="#1">test link 1</a><font>date1</font>
    <a href="#2"><font color="#ff0000">test link 2</font></a><font>date2</font>
    <a href="#3"><a href="#4"><font color="#ff0000">test link 4</font></a><a href="#5"><strong>test link 5</strong></a></a>差不多就这些了~~~
    我现在想得到的格式是<link>|||<text>|||<date>继续求助达人...可再加分。
      

  5.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
     </HEAD> <BODY>
      <textarea id="t1" cols="120" rows="15">
      <a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a><a href="###"><a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a></a>
      </textarea><br/>
      result:<br/>
      <textarea id="t2" cols="120" rows="15"></textarea>
      <input type="button" id="btn1" value="test"/>
      <SCRIPT LANGUAGE="JavaScript">
      <!--
    var $=function(s){return document.getElementById(s)}
    var p=/<a[^>]+href\s*=\s*[\"\']?([^\"\' ]+)[\"\']?[^>]*>([^\<]*?)<\/a>[\w\W]*?<font[^>]*?>([\w\W]*?)<\/font>/gm;
    $("btn1").onclick=function(){

    var v1=$("t1").value;
    var ary=v1.match(p);
    alert(v1);
    var s="";
    for(i in ary){
    s+=i+"="+ary[i]+"\n";
    }
    $("t2").value=s;
    }
      //-->
      </SCRIPT>
     </BODY>
    </HTML>
      

  6.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
     </HEAD> <BODY>
      <textarea id="t1" cols="120" rows="15">
      <a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a><a href="###"><a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a></a>
      </textarea><br/>
      result:<br/>
      <textarea id="t2" cols="120" rows="15"></textarea>
      <input type="button" id="btn1" value="test"/>
      <SCRIPT LANGUAGE="JavaScript">
      <!--
    var $=function(s){return document.getElementById(s)}
    var p=/<a[^>]+href\s*=\s*[\"\']?([^\"\' ]+)[\"\']?[^>]*>([^\<]*?)<\/a>[\w\W]*?<font[^>]*?>([\w\W]*?)<\/font>/gm;
    $("btn1").onclick=function(){

    var v1=$("t1").value;
    var ary=v1.match(p);
    alert(v1);
    var s="";
    for(i in ary){
    s+=i+"="+ary[i]+"\n";
    }
    $("t2").value=s;
    }
      //-->
      </SCRIPT>
     </BODY>
    </HTML>