问题描述
stringstr="<tdclass='td_Css'><ahref="#">2332<imgwidth="400px">图片</td><tdclass='td_Css'><ahref="#">23<imgwidth="400px">图片fasd</td><tdclass='td_Css'><ahref="#">23<imgwidth="400px">图片</td>";Regexre=newRegex("(?<=<tdclass='td_Css'>).*?(?=</td>)");MatchCollectionmc=re.Matches(str);foreach(Matchminmc){Response.Write(m.Groups[1].Value);}输出是空。怎么解决??
解决方案
解决方案二:
stringstr="<tdclass='td_Css'><ahref="#">2332<imgwidth="400px">图片</td><tdclass='td_Css'><ahref="#">23<imgwidth="400px">图片fasd</td><tdclass='td_Css'><ahref="#">23<imgwidth="400px">图片</td>";Regexre=newRegex("(?<=<tdclass='td_Css'>)(.*?)(?=</td>)");MatchCollectionmc=re.Matches(str);foreach(Matchminmc){Response.Write(m.Groups[1].Value);}
如果要用Group取得时候正则中应该有组()同样你也可以这样取stringstr="<tdclass='td_Css'><ahref="#">2332<imgwidth="400px">图片</td><tdclass='td_Css'><ahref="#">23<imgwidth="400px">图片fasd</td><tdclass='td_Css'><ahref="#">23<imgwidth="400px">图片</td>";Regexre=newRegex("(?<=<tdclass='td_Css'>)(.*?)(?=</td>)");MatchCollectionmc=re.Matches(str);foreach(Matchminmc){Response.Write(m.Value);}
解决方案三:
正则没怎么研究过,支持下。
解决方案四:
像这种没有必要加组的话正则中就不用加上括号,Regexre=newRegex("(?<=<tdclass='td_Css'>).*?(?=</td>)");
这样用Match.Value就可以取到
解决方案五:
晕了...刚才那个是你吧?正则表达式里面的符号不是可以随便改的。stringstr="<tdclass="td_Css"><ahref="#">2332<imgwidth="400px">图片</td><tdclass="td_Css"><ahref="#">23<imgwidth="400px">图片fasd</td><tdclass="td_Css"><ahref="#">23<imgwidth="400px">图片</td>";System.Text.RegularExpressions.Regexss=newRegex(@"(?<=<tdclass=""td_Css"">).*?(?=</td>)");for(inti=0;i<ss.Matches(str).Count;i++){Label1.Text+=Server.HtmlEncode(ss.Matches(str)[i].Value)+"<br>";}结果:<ahref="#">2332<imgwidth="400px">图片<ahref="#">23<imgwidth="400px">图片fasd<ahref="#">23<imgwidth="400px">图片
解决方案六:
把尖括号前后的空格去掉。