C#转换UBB的代码

来源:互联网 发布:c语言 if 编辑:程序博客网 时间:2024/05/21 15:02

    因为,老是把自己学的东西忘记了,因此把学到的一些东西记下来.虽然很简单但也是一种学习方式,加深认识

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
namespace web
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        private string HTMLEncode(string str)
        {
            str = str.Replace(">", ">");
            str = str.Replace("<", "<");
            char ch;
            ch = (char)32;
            str = str.Replace(ch.ToString(), " ");
            ch = (char)34;
            str = str.Replace(ch.ToString(), "''");
            ch = (char)39;
            str = str.Replace(ch.ToString(), "'");
            ch = (char)13;
            str = str.Replace(ch.ToString(), "");
            ch = (char)10;
            str = str.Replace(ch.ToString(), "<BR>");
            return str;
        }

        public string Ubbcode(string chr)
        {
            if (chr == null)
                return "";
            chr = chr.Replace("<", "<");
            chr = chr.Replace(">", ">");
            chr = chr.Replace("/n", "<br>");
            chr = Regex.Replace(chr, @"<script(?<x>[^/>]*)>(?<y>[^/>]*)/</script/>", @"<script$1>$2</script>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[url=(?<x>[^/]]*)/](?<y>[^/]]*)/[/url/]", @"<a href=$1  target=_blank>$2</a>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[url/](?<x>[^/]]*)/[/url/]", @"<a href=$1 target=_blank>$1</a>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[email=(?<x>[^/]]*)/](?<y>[^/]]*)/[/email/]", @"<a href=$1>$2</a>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[email/](?<x>[^/]]*)/[/email/]", @"<a href=$1>$1</a>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[flash](?<x>[^/]]*)/[/flash]", @"<OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=500 height=400><PARAM NAME=movie VALUE=""$1""><PARAM NAME=quality VALUE=high><embed src=""$1"" quality=high pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash width=500 height=400>$1</embed></OBJECT>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[img](?<x>[^/]]*)/[/img]", @"<IMG SRC=""$1"" border=0>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[color=(?<x>[^/]]*)/](?<y>[^/]]*)/[/color/]", @"<font color=$1>$2</font>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[face=(?<x>[^/]]*)/](?<y>[^/]]*)/[/face/]", @"<font face=$1>$2</font>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[size=1/](?<x>[^/]]*)/[/size/]", @"<font size=1>$1</font>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[size=2/](?<x>[^/]]*)/[/size/]", @"<font size=2>$1</font>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[size=3/](?<x>[^/]]*)/[/size/]", @"<font size=3>$1</font>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[size=4/](?<x>[^/]]*)/[/size/]", @"<font size=4>$1</font>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[align=(?<x>[^/]]*)/](?<y>[^/]]*)/[/align/]", @"<align=$1>$2</align>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[fly](?<x>[^/]]*)/[/fly]", @"<marquee width=90% behavior=alternate scrollamount=3>$1</marquee>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[move](?<x>[^/]]*)/[/move]", @"<marquee scrollamount=3>$1</marquee>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[glow=(?<x>[^/]]*),(?<y>[^/]]*),(?<z>[^/]]*)/](?<w>[^/]]*)/[/glow/]", @"<table width=$1 style=filter:glow(color=$2, strength=$3)>$4</table>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[shadow=(?<x>[^/]]*),(?<y>[^/]]*),(?<z>[^/]]*)/](?<w>[^/]]*)/[/shadow/]", @"<table width=$1 style=filter:shadow(color=$2, strength=$3)>$4</table>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[b/](?<x>[^/]]*)/[/b/]", @"<b>$1</b>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[i/](?<x>[^/]]*)/[/i/]", @"<i>$1</i>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[u/](?<x>[^/]]*)/[/u/]", @"<u>$1</u>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[code/](?<x>[^/]]*)/[/code/]", @"<pre id=code><font size=1 face=Verdana, Arial id=code>$1</font id=code></pre id=code>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[list/](?<x>[^/]]*)/[/list/]", @"<ul>$1</ul>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[list=1/](?<x>[^/]]*)/[/list/]", @"<ol type=1>$1</ol id=1>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[list=a/](?<x>[^/]]*)/[/list/]", @"<ol type=a>$1</ol id=a>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[/*/](?<x>[^/]]*)/[//*/]", @"<li>$1</li>", RegexOptions.IgnoreCase);
            chr = Regex.Replace(chr, @"/[quote](?<x>.*)/[/quote]", @"<center>-- 以下是引用 --<table border=1 width=80% cellpadding=10 cellspacing=0 ><tr><td>$1</td></tr></table></center>", RegexOptions.IgnoreCase);
            return (chr);
        }
    }
}