<table>
<tr>
<td>Name</td><td>Paul</td> 
</tr>
<tr>
<td>Age</td><td>30</td>
</tr>
</table>
如果我想得到里面name的值(paul)和Age的值(30),请问正则表达式要如何写?正则表达式可以实现么? 谢谢

解决方案 »

  1.   

    用javascript来实现就可以了<table id="table">
    <tr>
    <td> Name </td> 
    <td> Paul </td>  
    </tr>
    <tr>
    <td> Age </td> 
    <td> 30 </td>
    </tr>
    </table>
    <script language="javascript">
    var table = document.getElementById("table");
    var name, age;
    for (var i = 0; i < table.rows.length; i++)
    {
    if (table.rows[i].cells[0].innerText.indexOf("Name") > -1)
    {
    name = table.rows[i].cells[1].innerText;
    }

    if (table.rows[i].cells[0].innerText.indexOf("Age") > -1)
    {
    age = table.rows[i].cells[1].innerText;
    }
    }

    //alert(name + "__" + age);
      

  2.   


    <script language="javascript">
    var str="<table><tr><td> Name </td> <td> Paul </td></tr>"+
        "<tr><td> Age </td> <td> 30 </td></tr></table>";
    reg=/<td>([^<]+)/gm;
    var s="";
    i=0;
    while((result=reg.exec(str))!=null)
    {
    if(i%2!=0)
    {
    s=s+"="+result[1];
    }
    else
    {
    s=s+result[1];
    }
    i++;
    }
    alert(s);
    </script>
      

  3.   

    string test = @"<table>
    <tr>
    <td> Name </td> <td> Paul </td>  
    </tr>
    <tr>
    <td> Age </td> <td> 30 </td>
    </tr>
    </table> ";Match m = Regex.Match(test, @"Name\s*</td>\s*<td[^>]*>\s*(?<name>\S*)\s*</td>[\s\S]*?Age\s*</td>\s*<td[^>]*>\s*(?<age>\d*)", RegexOptions.IgnoreCase);
    if (m.Success)
    {
        MessageBox.Show(m.Groups["name"].Value);
        MessageBox.Show(m.Groups["age"].Value);
    }