博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

正则表达式(分组取名)

Posted on 2009-07-29 17:22  linFen  阅读(3504)  评论(0编辑  收藏  举报

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using System.Text;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {


    
       
        Regex r1 = new Regex("<td[^>]*>(?<play>([^<]*))<br />[^>]*>[^<]*</a>[^<]*</td>[^<]*<td[^>]*>[^<]*<a[^\\?]*\\?gid=(?<id>([^&]*))&amp;concede=(?<code>([^>]*))>(?<pl>([^<]*)[^<]*)</a>[^<]*</td>");

       // Regex r1 = new Regex(@"<td[^>]*>([^<]*)<br />[^>]*>[^<]*</a>[^<]*</td>[^<]*<td[^>]*>[^<]*<a[^\?]*\?gid=([^&]*)&amp;concede=([^>]*)>([^<]*)[^<]*</a>[^<]*</td>");
        string tabale = getTable();
       tabale=tabale.Replace("\n", "");
        MatchCollection list = r1.Matches(tabale);
        for (int i = 0; i < list.Count; i++)
        {
            Response.Write("&nbsp;&nbsp;play:" + list[i].Groups["play"].Value + "    &nbsp;&nbsp;&nbsp;&nbsp; id:" + list[i].Groups["id"].Value + "   &nbsp;&nbsp;&nbsp;&nbsp; code:" + (list[i].Groups["code"].Value.EndsWith("\"") ? list[i].Groups["code"].Value.Substring(0, list[i].Groups["code"].Value.Length - 1) : list[i].Groups["code"].Value )+ "   &nbsp;&nbsp;&nbsp;pl:" + list[i].Groups["pl"].Value + "<br/>");
        }
    }

    private string getTable()
    {

        return File.OpenText( Server.MapPath("TextFile.txt")).ReadToEnd();
    }

    /// <summary>
    /// 获得HTML代码开始标记和结束标记中间的数据
    /// </summary>
    /// <param name="code">HTML代码</param>
    /// <param name="wordsBegin">开始标记</param>
    /// <param name="wordsEnd">结束标记</param>
    /// <returns></returns>
    public string SniffwebCode(string code, string wordsBegin, string wordsEnd)
    {
        string NewsTitle = "";
        Regex regex1 = new Regex("" + wordsBegin + @"(?<title>[\s\S]+?)" + wordsEnd + "", RegexOptions.Compiled | RegexOptions.IgnoreCase);
        for (Match match1 = regex1.Match(code); match1.Success; match1 = match1.NextMatch())
        {
            NewsTitle = match1.Groups["title"].ToString();
        }
        return NewsTitle;
    }

}