首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net用正则表达式取<td>里边<span>标签的值

2012-09-25 
asp.net用正则表达式取td里面span标签的值如:string str @table idtableIdtrtdspan2

asp.net用正则表达式取<td>里面<span>标签的值
如:

string str = @"<table id=""tableId"">

  <tr><td><span>2</span>期</td></tr>

  <tr><td ><span>第一期</span><span>第二期</span><span>第三期</span><span>第四期</span><span>第五期</span><span>第六期</span><span>第七期</span></td></tr>

  <tr><td><label>时间: 2012-09-16 21:30</label></td></tr></table>";



我现在只会取到<td>里面的值,把<span>标签也给取出来了。这样实现的:

Regex reg = new Regex(@"(?is)<table[^>]*?id=""tableId""[^>]*?>(?:\s*<tr>(?:\s*<td[^>]*?>(.*?)</td>){1}\s*</tr>)*\s*</table>");

  foreach (Capture c in reg.Match(strHtml).Groups[1].Captures)

  {

  result += c.Value + "|";

  }

而我想得到<span>里面的值(取值的时候不带<span>标记,直接取里面的值),请问如何写正则表达式,谢谢!


[解决办法]

C# code
string strHtml = @"<table id=""tableId"">  <tr><td><span>2</span>期</td></tr>  <tr><td ><span>第一期</span><span>第二期</span><span>第三期</span><span>第四期</span><span>第五期</span><span>第六期</span><span>第七期</span></td></tr>  <tr><td><label>时间: 2012-09-16 21:30</label></td></tr></table>";            string result=string.Empty;                        string pattern = @"(?i)(?<=<table[^>]*?id=['""]?tableId['""]?[^>]*?>(?:(?!</?table>)[\s\S])*?<span>)[^<>]+?(?=</span>)";            result = string.Join("|", Regex.Matches(strHtml,pattern).Cast<Match>().Select(a=>a.Value));            //2|第一期|第二期|第三期|第四期|第五期|第六期|第七期 

热点排行