正则表达式获取HTML标记中的内容。(注:如果内容中含有回车符,请查看第三个例子)...

ContractedBlock.gif ExpandedBlockStart.gif 几个获取简单HTML标记间内容
None.gif            //=====================Begin1========================
None.gif            
//试验字符串
None.gif
            string strTmp = string.Empty;
None.gif            
//正则表达式
None.gif
            string tmpStr = string.Empty;
None.gif
None.gif            
//取出指定HTML标记中的匹配项的值RegexOptions.IgnoreCase忽略大小写,RegexOptions.Multiline忽略多行显示,
None.gif            
//tmpStr = "<title>([^<]*)</title>"        //获取<title>之间内容
None.gif

None.gif            strTmp 
= @"<add key='ConnectionString' value='server=localhost;database=数据库名;uid=sa;pwd=;pooling=true'/>";
None.gif            
//获取“database=”与“;”号之间的字符串:database=(.*);
None.gif
            tmpStr = "database=([^;]*);";
None.gif            Match TitleMatch 
= Regex.Match(strTmp, tmpStr ,RegexOptions.IgnoreCase | RegexOptions.Multiline );
None.gif
None.gif            
//如下例子作语法参考用获取size的值,实际应用可能不会如此复杂
None.gif
            strTmp = "><font color='red'  size=6>WebForm3</font><" ;
None.gif            tmpStr 
= @"<(\w+\s+\w+[=]+[']+\w+[']+\s+[size=]+\d)>";
None.gif            Match TitleMatch 
= Regex.Match(strTmp ,tmpStr , RegexOptions.IgnoreCase | RegexOptions.Multiline );
None.gif            
None.gif
None.gif            
//取出匹配项的值
None.gif
            string tmpStrTitle = TitleMatch.Groups[1].Value;
None.gif            
//替换掉HTML页中所有HTML标记
None.gif
            Label1.Text=Regex.Replace(Label1.Text.Trim(),"<.+?>","")+"*********"+TitleMatch.Groups[1].Value;
None.gif
None.gif            
//判断匹配正则表达式是否成功
None.gif
            if(Regex.Match(tmpStr,"<.+?>").Success)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif                
//操作
ExpandedBlockEnd.gif
            }

None.gif            
//=====================End1========================
None.gif
None.gif            
//=====================Begin2========================
None.gif
            string webDocContent="<a href=http://www.xxx.xxx/college/pages/default.htm target=_blank>师资队伍</A>";
None.gif            
//解释下面正则表达式:[\s]表示匹配空格字符,"+" 表示连接
None.gif
            string strPattern=@"a[\s]+href=(?<Link>[^\s>]+)[^>]*>(?<Text>[^<]*)</a>";
None.gif            
//获取链接显示的文字
None.gif
            MatchCollection Matches=Regex.Matches(webDocContent,strPattern,RegexOptions.IgnoreCase|RegexOptions.Compiled);
None.gif            
foreach(Match NextMatch in Matches)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif                
string URL=NextMatch.Groups["Link"].Value.ToString().Trim();
InBlock.gif                
string URLText=NextMatch.Groups["Text"].Value.ToString().Trim();
InBlock.gif                Response.Write(URL
+"****");
InBlock.gif                Response.Write(URLText);
ExpandedBlockEnd.gif            }

None.gif            
//=====================End2========================
None.gif
None.gif            
//=====================Begin3========================
None.gif
            string strPageContent = string.Empty;
None.gif            StreamReader srPage 
= new StreamReader(@"e:\save.txt",System.Text.Encoding.GetEncoding("gb2312"));
None.gif            strPageContent 
= srPage.ReadToEnd();
None.gif            srPage.Close();
None.gif            
//(\\s)*表示0或多个空格符、回车符等,*表示比配0或多个。(.*?)表示除回车符外的所有信息
None.gif
            MatchCollection TitleMatchs = Regex.Matches(strPageContent, "<td width=\"85%\" class=\"common_text\">((\\s)*(.*?)(\\s)*(.*?)(\\s)*(.*?)(\\s)*(.*?)(\\s)*)</td>", RegexOptions.IgnoreCase | RegexOptions.Multiline );
None.gif            
int tmpNum = 0;
None.gif            
//循环正则表达式所获取的,满足表达式的内容集合
None.gif
            foreach(Match NextMatch in TitleMatchs)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif                
++tmpNum;
InBlock.gif                Label1.Text 
+= tmpNum + "<br>****" + NextMatch.Groups[1].Value;
ExpandedBlockEnd.gif            }

None.gif            
//=====================End3========================

转载于:https://www.cnblogs.com/hanguoji/archive/2007/01/25/630560.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值