日期:2014-05-20  浏览次数:20393 次

这个正则表达式问题
<A.....> 如何去掉 <A和> 然后提取中间的数据,用正则实现

------解决方案--------------------
或者: string str = "AAAAAAA <A href= 'sfasfa '> bbbbbbbb </a> "; System.Text.RegularExpressions.Regex reg = new Regex( " <a.*?> (.*?) </a> ",System.Text.RegularExpressions.RegexOptions.IgnoreCase); System.Text.RegularExpressions.MatchCollection ms = reg.Matches(str); for (int i=0;i <ms.Count;i++) { Response.Write(ms[i].Result( "$1 ")+ " <BR> "); }
------解决方案--------------------
//表达式
string rule = @ " <a(?=[\s> ])[^> ]*> ([\s\S]*?) </a> ";

//取值:
MatchCollection matchs = Regex.Matches(yourStr,rule,RegexOptions.IgnoreCase);
foreach(Match aa in matchs)
{
aa.Group[ "1 "].Value;
}

//去掉:
yourStr = Regex.Replace(yourStr,rule,@ "$1 ",RegexOptions.IgnoreCase);

------解决方案--------------------
cpp2017(慕白兄) 小心别把 <area> 标签也给替换了
------解决方案--------------------
比如AAAAAAA <A href= 'sfasfa '> bbbbbbbb </a>
看楼主的意思,好像是只要 href= 'sfasfa '这一部分,如果是这样,楼上的正则稍稍改变一下就行了
string rule = @ " <a(?=[\s> ])([^> ]*)> ";
然后用楼上的代码,aa.Group[ "1 "].Value;即为所要提取的内容