一段HTML代码<table>
<tr>
<td class="tdTitle"><span id="show">2009-01-01</span> <span id="titlem">测试下</span></td>
</tr>
<tr>
<td><span id="showContent">这里是具体的内容</span></td>
</tr>
</table>我现在想通过下面的代码获取到标题,即 “测试下” 这三个字 int titleS = result.IndexOf("<span id=\"titlem\">") + 18;
int titleE = result.IndexOf("</span>");
string title = result.Substring(titleS, titleE - titleS);
Response.Write(title);但如果这样,却提示错误,因为
int titleE = result.IndexOf("</span>"); 这里指向的不是我想要的第二个结尾的span,请问这里的正值该怎么写,才能保证,获取到的元素是其对应的元素呢?
<tr>
<td class="tdTitle"><span id="show">2009-01-01</span> <span id="titlem">测试下</span></td>
</tr>
<tr>
<td><span id="showContent">这里是具体的内容</span></td>
</tr>
</table>我现在想通过下面的代码获取到标题,即 “测试下” 这三个字 int titleS = result.IndexOf("<span id=\"titlem\">") + 18;
int titleE = result.IndexOf("</span>");
string title = result.Substring(titleS, titleE - titleS);
Response.Write(title);但如果这样,却提示错误,因为
int titleE = result.IndexOf("</span>"); 这里指向的不是我想要的第二个结尾的span,请问这里的正值该怎么写,才能保证,获取到的元素是其对应的元素呢?
(?<=<span id="titlem">)[\s|\S]*?(?=</span>)
<tr>
<td class=""tdTitle""> <span id=""show"">2009-01-01 </span> <span id=""titlem"">测试下</span> </td>
</tr>
<tr>
<td> <span id=""showContent"">这里是具体的内容 </span> </td>
</tr>
</table>"; Regex reg = new Regex(@"(?is)id=""titlem"">(?<title>[^<]+)<");
MatchCollection mc = reg.Matches(html);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups["title"].ToString() + "\r\n");
}
<tr>
<td class=""tdTitle""> <span id=""show"">2009-01-01 </span> <span id=""titlem"">测试下</span> </td>
</tr>
<tr>
<td> <span id=""showContent"">这里是具体的内容 </span> </td>
</tr>
</table>"; Regex reg = new Regex(@"(?is)id=""titlem"">(?<title>[^<]+)<");
MatchCollection mc = reg.Matches(html);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups["title"].ToString() + "\r\n");
}
不是服务器控件 加个runat="server" 有问题?