正则表达式的应用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Oracle.DataAccess.Client;
using System.Data;
using System.Text.RegularExpressions;

public partial class Advertisement_AdDetail_BasicInfo : System.Web.UI.Page
{
    public int vAdId;
    public string arrid = "";
    protected void Page_Load(object sender, EventArgs e)
    {
       vAdId = Convert.ToInt32(Request.QueryString["vAdId"]);
       //  vAdId = 16640;
        ArrangeQuery();
        // [ajax]方法调用
        string strEvent = Common.RequestQueryStringToString("action").ToLower();
        switch (strEvent)
        {
            //查询广告状态列表并绑定到select上
            // 查询姓名列表,根据角色
            case "queryone":
                QueryOne();
                break;
            case "basicinfomodify":
                BasicinfoModify();
                break;
        }
    }
    // 查询广告所属的排期
    protected void ArrangeQuery()
    {
        // 定义参数
        OracleParameter p1 = new OracleParameter("i_adid", vAdId);


        OracleParameter[] paramList = new OracleParameter[] { p1 };
        // 执行数据库获取数据
        DataTable strResult = DataOperator.GetDataWithCursorDT("MG_ADSET.ArrangeQuery", paramList);
        // 输出结果
        arrid = strResult.Rows[0]["arrid"].ToString();
    }
    public void QueryOne()
    {
        // 定义返回内容
        string strResult = string.Empty;
        // 用户名
        //int strHostId = Common.RequestFormToInt("i_hostid", 0);
        // 用户名
        int intAdId = Common.RequestFormToInt("ADID", 0);
        // 定义参数        
        OracleParameter p1 = new OracleParameter("i_adid", intAdId);
        OracleParameter[] paramList = new OracleParameter[] { p1 };
        // 执行数据库获取数据
        strResult = DataOperator.GetDataWithCursor("MG_ADSET.BasicInfoQueryOne", paramList, "ADURL,ADIMGURL,ADCODE");
        // 输出结果
        Response.Write(strResult);
        Response.End();
    }
    public void BasicinfoModify()
    {
        // 定义返回内容
        string strResult = string.Empty;
        // 定义参数值
        int intAdId = Common.RequestFormToInt("ADID", -1);//广告编号  
        string strTitle = Common.RequestFormToString("TITLE");//广告标题
        int intStatusName = Common.RequestFormToInt("STATUSNAME", -1);//状态
        int intIsPoll = Common.RequestFormToInt("ISPOOL", -1);//是否广告池
        int intIsShow = Common.RequestFormToInt("ISSHOW", -1);//会员是否都可见
        int intIsApp = Common.RequestFormToInt("ISAPP", -1);//会员是否可申请  
        int intForbiddenFlag = Common.RequestFormToInt("FORBIDDENFLAG", -1);//会员是否可申请
        string strAdurl = DataOperator.unescape(Common.RequestFormToString("ADURL"));
        // string strAdurl = Common.RequestFormToString("ADURL");
        //string strAdurl = "";
        string strAdImgUrl = DataOperator.unescape(Common.RequestFormToString("ADIMGURL"));//创意引导文件
        string strAdCode = DataOperator.unescape(Common.RequestFormToString("ADCODE"));//转换(js空格等特殊符号 这里转换过来)  创意引导代码

       // string strAdCode = DataOperator.unescape(Common.RequestFormToString("ADCODE"));

       // string strAdurl = HttpUtility.UrlDecode(GetADUrl(strAdCode));//创意链接地址


        if (intForbiddenFlag==0)//不勾选  
        {
           // strAdurl = DataOperator.unescape(Common.RequestFormToString("ADURL"));

           strAdurl = Common.RequestFormToString("ADURL");

           string[] strAdurls1=strAdurl.Split('|');
           strAdurl = "";
           for (int i = 0; i < strAdurls1.Length; i++) {
               strAdurl += HttpUtility.UrlEncode(DataOperator.unescape(strAdurls1[i].Trim())) + "|";
           }

           strAdurl = strAdurl.Substring(0,strAdurl.Length-1).ToString();


            string strAdurl1 = strAdurl;  //HttpUtility.UrlEncode(strAdurl);


            string[] strAdurls = strAdurl.Split('|');
            string url = string.Empty;

            for (int i = 0; i < strAdurls.Length; i++)
            {
                url = url + "unionsky_adUrl[" + i + "] = \"" +strAdurls[i].Trim() + "\";\r\n";
            }

              
 
            #region 除去已有链接
            string patt;
            patt = @"unionsky_adUrl\[\d\] = ""http[^'|""]*"";[\r\n|\n\r|\r|\n]";
            Regex reg = new Regex(patt);
            MatchCollection matchs = reg.Matches(strAdCode);
            url = url.Replace("%5bplid%5d", "[plid]").Replace("%5badid%5d","[adid]").Replace("%5blkid%5d","[lkid]").Replace("%5bplidoid%5d","[plidoid]").Replace("%5bplaceid%5d","[placeid]").Replace("%5blinkid%5d","[linkid]");
            if (matchs.Count > 0)
            {
                for (int i = 0; i < matchs.Count; i++)
                {
                    if (i == matchs.Count - 1)
                    {
                      //  strAdCode = strAdCode.Replace(matchs[i].Value + "\n", url);
                        strAdCode = strAdCode.Replace(matchs[i].Value, url);
                       // strAdCode = strAdCode.Replace(matchs[i].Value + "\r\n", url);
                    }
                    else
                    {
                        strAdCode = strAdCode.Replace(matchs[i].Value, "");
                      //  strAdCode = strAdCode.Replace(matchs[i].Value + "\n", "");
                    }
                }
            }
            #endregion

         

          //  strAdCode = strAdCode.Replace("unionsky_adUrl[0] = \"\";\r\n", url);

            strAdurl = strAdurl.Replace("%5bplid%5d", "[plid]").Replace("%5badid%5d", "[adid]").Replace("%5blkid%5d", "[lkid]").Replace("%5bplidoid%5d", "[plidoid]").Replace("%5bplaceid%5d", "[placeid]").Replace("%5blinkid%5d", "[linkid]");

        }
        else {
            strAdurl = GetADUrl(strAdCode).Replace("%5bplid%5d", "[plid]").Replace("%5badid%5d", "[adid]").Replace("%5blkid%5d", "[lkid]").Replace("%5bplidoid%5d", "[plidoid]").Replace("%5bplaceid%5d", "[placeid]").Replace("%5blinkid%5d", "[linkid]"); //创意链接地址
           // strAdurl = GetADUrl(strAdCode);//创意链接地址
        }


        int intWidth = Common.RequestFormToInt("WIDTH", 0);//广告宽
        int intHeigth = Common.RequestFormToInt("HEIGTH", 0);//广告高
        // 定义参数
        OracleParameter p1 = new OracleParameter("i_adid", intAdId);
        OracleParameter p2 = new OracleParameter("i_title", strTitle);
        OracleParameter p3 = new OracleParameter("i_status", intStatusName);
        OracleParameter p4 = new OracleParameter("i_ispoll", intIsPoll);
        OracleParameter p5 = new OracleParameter("i_isshow", intIsShow);
        OracleParameter p6 = new OracleParameter("i_isapp", intIsApp);
        OracleParameter p7 = new OracleParameter("i_adurl", strAdurl);
        OracleParameter p8 = new OracleParameter("i_adimgurl", strAdImgUrl);
        OracleParameter p9 = new OracleParameter("i_adcode", strAdCode);
        OracleParameter p10 = new OracleParameter("i_width", intWidth);
        OracleParameter p11 = new OracleParameter("i_heigth", intHeigth);
        OracleParameter[] paramList = new OracleParameter[] { p1, p2 ,p3,p4,p5,p6,p7,p8,p9,p10,p11};
        // 执行数据库获取数据
        strResult = DataOperator.GetDataWithResult("MG_ADSET.BasicInfoModify", paramList);
        Response.Write(strResult);
        Response.End();
    }


    protected string GetADUrl(string strCode)
    {
        string ttt="";
        string patt;
        string patt1;
        string patt2;
        patt = @"&url=(http[^'|""]*)";
        patt1 = @"unionsky_adUrl\[\d\] = ""http[^'|""]*"";";
        patt2 = @"http[^'|""]*";
        Regex reg1 = new Regex(patt1);
        Regex reg = new Regex(patt);
        Regex reg2 = new Regex(patt2);

        //提取广告URL
        MatchCollection matchs = reg.Matches(strCode.Replace("\"", "'"));
        MatchCollection matchs1 = reg1.Matches(strCode);
        Match match;

        if (matchs1.Count > 0)
        {

            // this.SelectNumber.SelectedValue = matchs1.Count.ToString();
            for (int i = 0; i < matchs1.Count; i++)
            {
                match = reg2.Match(matchs1[i].Value);
                if (match.Length > 0)
                {
                    if (ttt == "")
                    {
                        ttt =match.Value.ToString();
                    }
                    else
                    {
                        ttt = ttt + "|" + match.Value.ToString();
                    }
                }
            }


        }

        return ttt;

        //if (matchs.Count > 0)
        //{
        //    string strUrlCode = matchs[0].Result("$1").ToString();
        //    return strUrlCode;
        //}
        //else
        //{
        //    return "";
        //}

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值