彭宁新的网站系统
当前位置:中国站长 > C#    
程序开发C语言Java/JSP移动开发汇编语言C#C++VBDelphi
CGI论坛SilverlightActionScript
UBB(c#完整版)
整理时间:12-10-2009 整理人员:夏天   ( 得分:5 )
阅读人次:1640
  1. using System;   
  2. using System.Text;   
  3. using System.Text.RegularExpressions;   
  4. namespace myluntan   
  5. {   
  6.      /// <summary>   
  7.      /// UBB 的摘要说明。   
  8.      /// </summary>   
  9.      public class UBB   
  10.      {   
  11.           public UBB()   
  12.           {   
  13.                 //   
  14.                 // TODO: 在此处添加构造函数逻辑   
  15.                 //   
  16.           }  
  17.           #region 公共静态方法   
  18.           /// <summary>   
  19.           /// UBB代码处理函数   
  20.           /// </summary>   
  21.           /// <param name="sDetail">输入字符串</param>   
  22.           /// <returns>输出字符串</returns>   
  23.           public string UBBToHTML(string sDetail)   
  24.           {   
  25.                 Regex r;   
  26.                 Match m;  
  27.                 #region 处理空格   
  28.                 sDetail = sDetail.Replace(" "" ");  
  29.                 #endregion  
  30.                 #region 处理单引号   
  31.                 sDetail = sDetail.Replace("\'""'");  
  32.                 #endregion  
  33.                 #region 处理双引号   
  34.                 sDetail = sDetail.Replace("\""""");  
  35.                 #endregion  
  36.                 #region html标记符   
  37.                 sDetail = sDetail.Replace("<""<");   
  38.                 sDetail = sDetail.Replace(">"">");  
  39.                 #endregion  
  40.                 #region 处理换行   
  41.                 //处理换行,在每个新行的前面添加两个全角空格   
  42.                 r = new Regex(@"(\r\n(( )| )+)(?<正文> +)", RegexOptions.IgnoreCase);   
  43.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  44.                 {   
  45.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<BR>  " + m.Groups["正文"].ToString());   
  46.                 }   
  47.                 //处理换行,在每个新行的前面添加两个全角空格   
  48.                 sDetail = sDetail.Replace("\r\n""<BR>");  
  49.                 #endregion  
  50.                 #region 处[b][/b]标记   
  51.                 r = new Regex(@"(\[b\])([ \t]*?)(\[\/b\])", RegexOptions.IgnoreCase);   
  52.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  53.                 {   
  54.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<B>" + m.Groups[2].ToString() + "</B>");   
  55.                 }  
  56.                 #endregion  
  57.                 #region 处[i][/i]标记   
  58.                 r = new Regex(@"(\[i\])([ \t]*?)(\[\/i\])", RegexOptions.IgnoreCase);   
  59.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  60.                 {   
  61.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<I>" + m.Groups[2].ToString() + "</I>");   
  62.                 }  
  63.                 #endregion  
  64.                 #region 处[u][/u]标记   
  65.                 r = new Regex(@"(\[U\])([ \t]*?)(\[\/U\])", RegexOptions.IgnoreCase);   
  66.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  67.                 {   
  68.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<U>" + m.Groups[2].ToString() + "</U>");   
  69.                 }  
  70.                 #endregion  
  71.                 #region 处[p][/p]标记   
  72.                 //处[p][/p]标记   
  73.                 r = new Regex(@"((\r\n)*\[p\])(.*?)((\r\n)*\[\/p\])", RegexOptions.IgnoreCase | RegexOptions.Singleline);   
  74.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  75.                 {   
  76.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<P class=\"pstyle\">" + m.Groups[3].ToString() + "</P>");   
  77.                 }  
  78.                 #endregion  
  79.                 #region 处[sup][/sup]标记   
  80.                 //处[sup][/sup]标记   
  81.                 r = new Regex(@"(\[sup\])([ \t]*?)(\[\/sup\])", RegexOptions.IgnoreCase);   
  82.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  83.                 {   
  84.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<SUP>" + m.Groups[2].ToString() + "</SUP>");   
  85.                 }  
  86.                 #endregion  
  87.                 #region 处[sub][/sub]标记   
  88.                 //处[sub][/sub]标记   
  89.                 r = new Regex(@"(\[sub\])([ \t]*?)(\[\/sub\])", RegexOptions.IgnoreCase);   
  90.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  91.                 {   
  92.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<SUB>" + m.Groups[2].ToString() + "</SUB>");   
  93.                 }  
  94.                 #endregion  
  95.                 #region 处[url][/url]标记   
  96.                 //处[url][/url]标记   
  97.                 r = new Regex(@"(\[url\])([ \t]*?)(\[\/url\])", RegexOptions.IgnoreCase);   
  98.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  99.                 {   
  100.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  101.                       "<A href=\"" + m.Groups[2].ToString() + "\" target=\"_blank\">" +   
  102.                       m.Groups[2].ToString() + "</A>");   
  103.                 }  
  104.                 #endregion  
  105.                 #region 处[url=xxx][/url]标记   
  106.                 //处[url=xxx][/url]标记   
  107.                 r = new Regex(@"(\[url=([ \t]+)\])([ \t]*?)(\[\/url\])", RegexOptions.IgnoreCase);   
  108.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  109.                 {   
  110.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  111.                       "<A href=\"" + m.Groups[2].ToString() + "\" target=\"_blank\">" +   
  112.                       m.Groups[3].ToString() + "</A>");   
  113.                 }  
  114.                 #endregion  
  115.                 #region 处[email][/email]标记   
  116.                 //处[email][/email]标记   
  117.                 r = new Regex(@"(\[email\])([ \t]*?)(\[\/email\])", RegexOptions.IgnoreCase);   
  118.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  119.                 {   
  120.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  121.                       "<A href=\"mailto:" + m.Groups[2].ToString() + "\" target=\"_blank\">" +   
  122.                       m.Groups[2].ToString() + "</A>");   
  123.                 }  
  124.                 #endregion  
  125.                 #region 处[email=xxx][/email]标记   
  126.                 //处[email=xxx][/email]标记   
  127.                 r = new Regex(@"(\[email=([ \t]+)\])([ \t]*?)(\[\/email\])", RegexOptions.IgnoreCase);   
  128.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  129.                 {   
  130.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  131.                       "<A href=\"mailto:" + m.Groups[2].ToString() + "\" target=\"_blank\">" +   
  132.                       m.Groups[3].ToString() + "</A>");   
  133.                 }  
  134.                 #endregion  
  135.                 #region 处[size=x][/size]标记   
  136.                 //处[size=x][/size]标记   
  137.                 r = new Regex(@"(\[size=([1-7])\])([ \t]*?)(\[\/size\])", RegexOptions.IgnoreCase);   
  138.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  139.                 {   
  140.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  141.                       "<FONT SIZE=" + m.Groups[2].ToString() + ">" +   
  142.                       m.Groups[3].ToString() + "</FONT>");   
  143.                 }  
  144.                 #endregion  
  145.                 #region 处[color=x][/color]标记   
  146.                 //处[color=x][/color]标记   
  147.                 r = new Regex(@"(\[color=([ ]+)\])([ \t]*?)(\[\/color\])", RegexOptions.IgnoreCase);   
  148.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  149.                 {   
  150.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  151.                       "<FONT COLOR=" + m.Groups[2].ToString() + ">" +   
  152.                       m.Groups[3].ToString() + "</FONT>");   
  153.                 }  
  154.                 #endregion  
  155.                 #region 处[font=x][/font]标记   
  156.                 //处[font=x][/font]标记   
  157.                 r = new Regex(@"(\[font=([ ]+)\])([ \t]*?)(\[\/font\])", RegexOptions.IgnoreCase);   
  158.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  159.                 {   
  160.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  161.                       "<FONT FACE=" + m.Groups[2].ToString() + ">" +   
  162.                       m.Groups[3].ToString() + "</FONT>");   
  163.                 }  
  164.                 #endregion  
  165.                 #region 处理图片链接   
  166.                 //处理图片链接   
  167.                 r = new Regex("\\[picture\\](\\d+?)\\[\\/picture\\]", RegexOptions.IgnoreCase);   
  168.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  169.                 {   
  170.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  171.                       "<A href=\"ShowImage.aspx?Type=ALL&Action=forumImage&ImageID=" + m.Groups[1].ToString() +   
  172.                       "\" target=\"_blank\"><IMG border=0 Title=\"点击打开新窗口查看\" src=\"ShowImage.aspx?Action=forumImage&ImageID=" + m.Groups[1].ToString() +   
  173.                       "\"></A>");   
  174.                 }  
  175.                 #endregion  
  176.                 #region 处理[align=x][/align]   
  177.                 //处理[align=x][/align]   
  178.                 r = new Regex(@"(\[align=([ ]+)\])([ \t]*?)(\[\/align\])", RegexOptions.IgnoreCase);   
  179.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  180.                 {   
  181.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  182.                       "<P align=" + m.Groups[2].ToString() + ">" +   
  183.                       m.Groups[3].ToString() + "</P>");   
  184.                 }  
  185.                 #endregion  
  186.                 #region 处[H=x][/H]标记   
  187.                 //处[H=x][/H]标记   
  188.                 r = new Regex(@"(\[H=([1-6])\])([ \t]*?)(\[\/H\])", RegexOptions.IgnoreCase);   
  189.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  190.                 {   
  191.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  192.                       "<H" + m.Groups[2].ToString() + ">" +   
  193.                       m.Groups[3].ToString() + "</H" + m.Groups[2].ToString() + ">");   
  194.                 }  
  195.                 #endregion  
  196.                 #region 处理[list=x][*][/list]   
  197.                 //处理[list=x][*][/list]   
  198.                 r = new Regex(@"(\[list(=(A|a|I|i| ))?\]([ \t]*)\r\n)((\[\*\]([ \t]*\r\n))*?)(\[\/list\])", RegexOptions.IgnoreCase);   
  199.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  200.                 {   
  201.                      string strLI = m.Groups[5].ToString();   
  202.                      Regex rLI = new Regex(@"\[\*\]([ \t]*\r\n?)", RegexOptions.IgnoreCase);   
  203.                      Match mLI;   
  204.                      for (mLI = rLI.Match(strLI); mLI.Success; mLI = mLI.NextMatch())   
  205.                      {   
  206.                           strLI = strLI.Replace(mLI.Groups[0].ToString(), "<LI>" + mLI.Groups[1]);   
  207.                      }   
  208.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  209.                       "<UL TYPE=\"" + m.Groups[3].ToString() + "\"><B>" + m.Groups[4].ToString() + "</B>" +   
  210.                       strLI + "</UL>");   
  211.                 }  
  212.                 #endregion  
  213.                 #region 处[SHADOW=x][/SHADOW]标记   
  214.                 //处[SHADOW=x][/SHADOW]标记   
  215.                 r = new Regex(@"(\[SHADOW=)(\d*?),(#*\w*?),(\d*?)\]([ \t]*?)(\[\/SHADOW\])", RegexOptions.IgnoreCase);   
  216.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  217.                 {   
  218.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  219.                       "<TABLE WIDTH=" + m.Groups[2].ToString() + "  STYLE=FILTER:SHADOW(COLOR=" + m.Groups[3].ToString() + ", STRENGTH=" + m.Groups[4].ToString() + ")>" +   
  220.                       m.Groups[5].ToString() + "</TABLE>");   
  221.                 }  
  222.                 #endregion  
  223.                 #region 处[glow=x][/glow]标记   
  224.                 //处[glow=x][/glow]标记   
  225.                 r = new Regex(@"(\[glow=)(\d*?),(#*\w*?),(\d*?)\]([ \t]*?)(\[\/glow\])", RegexOptions.IgnoreCase);   
  226.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  227.                 {   
  228.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  229.                       "<TABLE WIDTH=" + m.Groups[2].ToString() + "  STYLE=FILTER:GLOW(COLOR=" + m.Groups[3].ToString() + ", STRENGTH=" + m.Groups[4].ToString() + ")>" +   
  230.                       m.Groups[5].ToString() + "</TABLE>");   
  231.                 }  
  232.                 #endregion  
  233.                 #region 处[center][/center]标记   
  234.                 r = new Regex(@"(\[center\])([ \t]*?)(\[\/center\])", RegexOptions.IgnoreCase);   
  235.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  236.                 {   
  237.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<CENTER>" + m.Groups[2].ToString() + "</CENTER>");   
  238.                 }  
  239.                 #endregion  
  240.                 #region 处[IMG][/IMG]标记   
  241.                 r = new Regex(@"(\[IMG\])(http|https|ftp):\/\/([ \t]*?)(\[\/IMG\])", RegexOptions.IgnoreCase);   
  242.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  243.                 {   
  244.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<br><a onfocus=this.blur() href=" + m.Groups[2].ToString() + "://" + m.Groups[3].ToString() + " target=_blank><IMG SRC=" + m.Groups[2].ToString() + "://" + m.Groups[3].ToString() + " border=0 alt=按此在新窗口浏览图片 onload=javascript:if(screen.width-333<this.width)this.width=screen.width-333></a>");   
  245.                 }  
  246.                 #endregion  
  247.                 #region 处[em]标记   
  248.                 r = new Regex(@"(\[em([ \t]*?)\])", RegexOptions.IgnoreCase);   
  249.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  250.                 {   
  251.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<img src=pic/em" + m.Groups[2].ToString() + ".gif border=0 align=middle>");   
  252.                 }  
  253.                 #endregion  
  254.                 #region 处[flash=x][/flash]标记   
  255.                 //处[mp=x][/mp]标记   
  256.                 r = new Regex(@"(\[flash=)(\d*?),(\d*?)\]([ \t]*?)(\[\/flash\])", RegexOptions.IgnoreCase);   
  257.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  258.                 {   
  259.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  260.                       "<a href=" + m.Groups[4].ToString() + " TARGET=_blank><IMG src=\"/chinasum_flies_list/BeyondPic/2006-1/21/0612111085753951.gif\" border=0 alt=点击开新窗口欣赏该FLASH动画!> [全屏欣赏]</a><br><br><OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + "><PARAM NAME=movie VALUE=" + m.Groups[4].ToString() + "><PARAM NAME=quality VALUE=high><param name=menu value=false><embed src=" + m.Groups[4].ToString() + " quality=high menu=false pluginspage=http://www.macromedia.com/go/getflashplayer type=application/x-shockwave-flash width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + ">" + m.Groups[4].ToString() + "</embed></OBJECT>");   
  261.                 }  
  262.                 #endregion  
  263.                 #region 处[dir=x][/dir]标记   
  264.                 //处[dir=x][/dir]标记   
  265.                 r = new Regex(@"(\[dir=)(\d*?),(\d*?)\]([ \t]*?)(\[\/dir\])", RegexOptions.IgnoreCase);   
  266.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  267.                 {   
  268.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  269.                       "<object classid=clsid:166B1BCA-3F9C-11CF-8075-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0 width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + "><param name=src value=" + m.Groups[4].ToString() + "><embed src=" + m.Groups[4].ToString() + " pluginspage=http://www.macromedia.com/shockwave/download/ width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + "></embed></object>");   
  270.                 }  
  271.                 #endregion  
  272.                 #region 处[rm=x][/rm]标记   
  273.                 //处[rm=x][/rm]标记   
  274.                 r = new Regex(@"(\[rm=)(\d*?),(\d*?)\]([ \t]*?)(\[\/rm\])", RegexOptions.IgnoreCase);   
  275.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  276.                 {   
  277.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  278.                       "<OBJECT classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + "><PARAM NAME=SRC VALUE=" + m.Groups[4].ToString() + "><PARAM NAME=CONSOLE VALUE=Clip1><PARAM NAME=CONTROLS VALUE=imagewindow><PARAM NAME=AUTOSTART VALUE=true></OBJECT><br><OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height=32 id=video2 width=" + m.Groups[2].ToString() + "><PARAM NAME=SRC VALUE=" + m.Groups[4].ToString() + "><PARAM NAME=AUTOSTART VALUE=-1><PARAM NAME=CONTROLS VALUE=controlpanel><PARAM NAME=CONSOLE VALUE=Clip1></OBJECT>");   
  279.                 }  
  280.                 #endregion  
  281.                 #region 处[mp=x][/mp]标记   
  282.                 //处[mp=x][/mp]标记   
  283.                 r = new Regex(@"(\[mp=)(\d*?),(\d*?)\]([ \t]*?)(\[\/mp\])", RegexOptions.IgnoreCase);   
  284.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  285.                 {   
  286.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  287.                       "<object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + " ><param name=ShowStatusBar value=-1><param name=Filename value=" + m.Groups[4].ToString() + "><embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=" + m.Groups[4].ToString() + "  width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + "></embed></object>");   
  288.                 }  
  289.                 #endregion  
  290.                 #region 处[qt=x][/qt]标记   
  291.                 //处[qt=x][/qt]标记   
  292.                 r = new Regex(@"(\[qt=)(\d*?),(\d*?)\]([ \t]*?)(\[\/qt\])", RegexOptions.IgnoreCase);   
  293.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  294.                 {   
  295.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  296.                       "<embed src=" + m.Groups[4].ToString() + " width=" + m.Groups[2].ToString() + " height=" + m.Groups[3].ToString() + " autoplay=true loop=false controller=true playeveryframe=false cache=false scale=TOFIT bgcolor=#000000 kioskmode=false targetcache=false pluginspage=http://www.apple.com/quicktime/>");   
  297.                 }  
  298.                 #endregion  
  299.                 #region 处[QUOTE][/QUOTE]标记   
  300.                 r = new Regex(@"(\[QUOTE\])([ \t]*?)(\[\/QUOTE\])", RegexOptions.IgnoreCase);   
  301.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  302.                 {   
  303.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<table cellpadding=0 cellspacing=0 border=1 WIDTH=94% bordercolor=#000000 bgcolor=#F2F8FF align=center  style=FONT-SIZE: 9pt><tr><td  ><table width=100% cellpadding=5 cellspacing=1 border=0><TR><TD >" + m.Groups[2].ToString() + "</table></table><br>");   
  304.                 }  
  305.                 #endregion  
  306.                 #region 处[move][/move]标记   
  307.                 r = new Regex(@"(\[move\])([ \t]*?)(\[\/move\])", RegexOptions.IgnoreCase);   
  308.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  309.                 {   
  310.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<MARQUEE scrollamount=3>" + m.Groups[2].ToString() + "</MARQUEE>");   
  311.                 }  
  312.                 #endregion  
  313.                 #region 处[FLY][/FLY]标记   
  314.                 r = new Regex(@"(\[FLY\])([ \t]*?)(\[\/FLY\])", RegexOptions.IgnoreCase);   
  315.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  316.                 {   
  317.                      sDetail = sDetail.Replace(m.Groups[0].ToString(), "<MARQUEE width=80% behavior=alternate scrollamount=3>" + m.Groups[2].ToString() + "</MARQUEE>");   
  318.                 }  
  319.                 #endregion  
  320.                 #region 处[image][/image]标记   
  321.                 //处[image][/image]标记   
  322.                 r = new Regex(@"(\[image\])([ \t]*?)(\[\/image\])", RegexOptions.IgnoreCase);   
  323.                 for (m = r.Match(sDetail); m.Success; m = m.NextMatch())   
  324.                 {   
  325.                      sDetail = sDetail.Replace(m.Groups[0].ToString(),   
  326.                       "<img src=\"" + m.Groups[2].ToString() + "\" border=0 align=middle><br>");   
  327.                 }  
  328.                 #endregion   
  329.                 return sDetail;   
  330.           }  
  331.           #endregion   
  332.      }   
  333. }  
 
操作系统
Windows系列苹果
Linux架设服务器
数据库
MySqlSQL Server
ACCESSVFP
SybaseDB2
Oracle
综合应用
网络技术黑客技术
电脑故障病毒安全
程序开发
C语言Java/JSP
移动开发汇编语言
C#C++
VBDelphi
CGI论坛
SilverlightActionScript
平面&三维
PhotoShopFlash
3DmaxCAD
CorelDraw
网页设计
JavascriptVML教程
Php语言AJAX
XMLASP
ASP.NETCss
HTML语法Dom
电脑基础
域名知识虚拟主机
网站知识VPS知识
主机知识服务器架设
邮箱知识IDC增值服务
最新推荐
  • C#中的析构函数
  • 防止对 Visual Basic .NET...
  • C# 2.0:使用匿名方法、迭...
  • .net中内存占用的问题
  • ASP.NET缓存:方法和最佳实...
  • UBB(c#完整版)
  • C#实现web信息自动抓取
  • C#实现的18位身份证格式验...
  • 本类热门
  • sideBar控件的使用方法
  • C# 2.0:使用匿名方法、迭...
  • .net中内存占用的问题
  • 防止对 Visual Basic .NET...
  • ASP.NET缓存:方法和最佳实...
  • C#中的析构函数
  • C#实现的18位身份证格式验...
  • UBB(c#完整版)

  • 粤ICP备12087766号   |  

    粤公网安备 44139902100106号