zoukankan
html css js c++ java
UBB(c#完整版)
using
System;
using
System;
using
System.Text;
using
System.Text.RegularExpressions;
namespace
myluntan
{
/**/
///
<summary>
///
UBB 的摘要说明。
///
</summary>
public
class
UBB
{
public
UBB()
{
//
//
TODO: 在此处添加构造函数逻辑
//
}
公共静态方法
#region
公共静态方法
/**/
///
<summary>
///
UBB代码处理函数
///
</summary>
///
<param name="sDetail">
输入字符串
</param>
///
<returns>
输出字符串
</returns>
public
string
UBBToHTML(
string
sDetail)
{
Regex r;
Match m;
处理空格
#region
处理空格
sDetail
=
sDetail.Replace(
"
"
,
"
"
);
#endregion
处理单引号
#region
处理单引号
sDetail
=
sDetail.Replace(
"
'
"
,
"
’
"
);
#endregion
处理双引号
#region
处理双引号
sDetail
=
sDetail.Replace(
"
\
""
,
"
&
quot;
"
);
#endregion
html标记符
#region
html标记符
sDetail
=
sDetail.Replace(
"
<
"
,
"
<
"
);
sDetail
=
sDetail.Replace(
"
>
"
,
"
>
"
);
#endregion
处理换行
#region
处理换行
//
处理换行,在每个新行的前面添加两个全角空格
r
=
new
Regex(
@"
(\r\n(( )| )+)(?<正文>\S+)
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<BR>
"
+
m.Groups[
"
正文
"
].ToString());
}
//
处理换行,在每个新行的前面添加两个全角空格
sDetail
=
sDetail.Replace(
"
\r\n
"
,
"
<BR>
"
);
#endregion
处[b][/b]标记
#region
处[b][/b]标记
r
=
new
Regex(
@"
(\[b\])([ \S\t]*?)(\[\/b\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<B>
"
+
m.Groups[
2
].ToString()
+
"
</B>
"
);
}
#endregion
处[i][/i]标记
#region
处[i][/i]标记
r
=
new
Regex(
@"
(\[i\])([ \S\t]*?)(\[\/i\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<I>
"
+
m.Groups[
2
].ToString()
+
"
</I>
"
);
}
#endregion
处[u][/u]标记
#region
处[u][/u]标记
r
=
new
Regex(
@"
(\[U\])([ \S\t]*?)(\[\/U\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<U>
"
+
m.Groups[
2
].ToString()
+
"
</U>
"
);
}
#endregion
处[p][/p]标记
#region
处[p][/p]标记
//
处[p][/p]标记
r
=
new
Regex(
@"
((\r\n)*\[p\])(.*?)((\r\n)*\[\/p\])
"
,RegexOptions.IgnoreCase
|
RegexOptions.Singleline);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<P class=\
"
pstyle\
"
>
"
+
m.Groups[
3
].ToString()
+
"
</P>
"
);
}
#endregion
处[sup][/sup]标记
#region
处[sup][/sup]标记
//
处[sup][/sup]标记
r
=
new
Regex(
@"
(\[sup\])([ \S\t]*?)(\[\/sup\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<SUP>
"
+
m.Groups[
2
].ToString()
+
"
</SUP>
"
);
}
#endregion
处[sub][/sub]标记
#region
处[sub][/sub]标记
//
处[sub][/sub]标记
r
=
new
Regex(
@"
(\[sub\])([ \S\t]*?)(\[\/sub\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<SUB>
"
+
m.Groups[
2
].ToString()
+
"
</SUB>
"
);
}
#endregion
处[url][/url]标记
#region
处[url][/url]标记
//
处[url][/url]标记
r
=
new
Regex(
@"
(\[url\])([ \S\t]*?)(\[\/url\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<A href=\
""
_fcksavedurl=
"
\
"""
+ m.Groups[2].ToString() +
"
\
"
target=\
"
_blank\
"
>
"
+
m.Groups[
2
].ToString()
+
"
</A>
"
);
}
#endregion
处[url=xxx][/url]标记
#region
处[url=xxx][/url]标记
//
处[url=xxx][/url]标记
r
=
new
Regex(
@"
(\[url=([ \S\t]+)\])([ \S\t]*?)(\[\/url\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<A href=\
""
_fcksavedurl=
"
\
"""
+ m.Groups[2].ToString() +
"
\
"
target=\
"
_blank\
"
>
"
+
m.Groups[
3
].ToString()
+
"
</A>
"
);
}
#endregion
处[email][/email]标记
#region
处[email][/email]标记
//
处[email][/email]标记
r
=
new
Regex(
@"
(\[email\])([ \S\t]*?)(\[\/email\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<A href=\
"
mailto:
"
_fcksavedurl=
"
\
"
mailto:
""
+ m.Groups[2].ToString() +
"
\
"
target=\
"
_blank\
"
>
"
+
m.Groups[
2
].ToString()
+
"
</A>
"
);
}
#endregion
处[email=xxx][/email]标记
#region
处[email=xxx][/email]标记
//
处[email=xxx][/email]标记
r
=
new
Regex(
@"
(\[email=([ \S\t]+)\])([ \S\t]*?)(\[\/email\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<A href=\
"
mailto:
"
_fcksavedurl=
"
\
"
mailto:
""
+ m.Groups[2].ToString() +
"
\
"
target=\
"
_blank\
"
>
"
+
m.Groups[
3
].ToString()
+
"
</A>
"
);
}
#endregion
处[size=x][/size]标记
#region
处[size=x][/size]标记
//
处[size=x][/size]标记
r
=
new
Regex(
@"
(\[size=([1-7])\])([ \S\t]*?)(\[\/size\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<FONT SIZE=
"
+
m.Groups[
2
].ToString()
+
"
>
"
+
m.Groups[
3
].ToString()
+
"
</FONT>
"
);
}
#endregion
处[color=x][/color]标记
#region
处[color=x][/color]标记
//
处[color=x][/color]标记
r
=
new
Regex(
@"
(\[color=([\S]+)\])([ \S\t]*?)(\[\/color\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<FONT COLOR=
"
+
m.Groups[
2
].ToString()
+
"
>
"
+
m.Groups[
3
].ToString()
+
"
</FONT>
"
);
}
#endregion
处[font=x][/font]标记
#region
处[font=x][/font]标记
//
处[font=x][/font]标记
r
=
new
Regex(
@"
(\[font=([\S]+)\])([ \S\t]*?)(\[\/font\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<FONT FACE=
"
+
m.Groups[
2
].ToString()
+
"
>
"
+
m.Groups[
3
].ToString()
+
"
</FONT>
"
);
}
#endregion
处理图片链接
#region
处理图片链接
//
处理图片链接
r
=
new
Regex(
"
\\[picture\\](\\d+?)\\[\\/picture\\]
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<A href=\
"
ShowImage.aspx
?
Type
=
ALL
&
Action
=
forumImage
&
ImageID
=
"
_fcksavedurl=
"
\
"
ShowImage.aspx?Type=ALL&Action=forumImage&ImageID=
""
+
m.Groups[
1
].ToString()
+
"
\
"
target
=
\
"
_blank\
"
><
IMG border
=
0
Title
=
\
"
点击打开新窗口查看\
"
src
=
\
"
ShowImage.aspx?Action=forumImage&ImageID=
"
_fcksavedurl
=
"
\
"
ShowImage.aspx
?
Action
=
forumImage
&
ImageID
=
""
+
m.Groups[
1
].ToString()
+
"
\
"
></
A
>
"
);
}
#endregion
处理[align=x][/align]
#region
处理[align=x][/align]
//
处理[align=x][/align]
r
=
new
Regex(
@"
(\[align=([\S]+)\])([ \S\t]*?)(\[\/align\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<P align=
"
+
m.Groups[
2
].ToString()
+
"
>
"
+
m.Groups[
3
].ToString()
+
"
</P>
"
);
}
#endregion
处[H=x][/H]标记
#region
处[H=x][/H]标记
//
处[H=x][/H]标记
r
=
new
Regex(
@"
(\[H=([1-6])\])([ \S\t]*?)(\[\/H\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<H
"
+
m.Groups[
2
].ToString()
+
"
>
"
+
m.Groups[
3
].ToString()
+
"
</H
"
+
m.Groups[
2
].ToString()
+
"
>
"
);
}
#endregion
处理[list=x][*][/list]
#region
处理[list=x][*][/list]
//
处理[list=x][*][/list]
r
=
new
Regex(
@"
(\[list(=(A|a|I|i| ))?\]([ \S\t]*)\r\n)((\[\*\]([ \S\t]*\r\n))*?)(\[\/list\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
string
strLI
=
m.Groups[
5
].ToString();
Regex rLI
=
new
Regex(
@"
\[\*\]([ \S\t]*\r\n?)
"
,RegexOptions.IgnoreCase);
Match mLI;
for
(mLI
=
rLI.Match(strLI); mLI.Success; mLI
=
mLI.NextMatch())
{
strLI
=
strLI.Replace(mLI.Groups[
0
].ToString(),
"
<LI>
"
+
mLI.Groups[
1
]);
}
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<UL TYPE=\
""
+ m.Groups[3].ToString() +
"
\
"
><B>
"
+
m.Groups[
4
].ToString()
+
"
</B>
"
+
strLI
+
"
</UL>
"
);
}
#endregion
处[SHADOW=x][/SHADOW]标记
#region
处[SHADOW=x][/SHADOW]标记
//
处[SHADOW=x][/SHADOW]标记
r
=
new
Regex(
@"
(\[SHADOW=)(\d*?),(#*\w*?),(\d*?)\]([\S\t]*?)(\[\/SHADOW\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<TABLE WIDTH=
"
+
m.Groups[
2
].ToString()
+
"
STYLE
=
FILTER:SHADOW(COLOR
=
"
+ m.Groups[3].ToString() +
"
,
STRENGTH
=
"
+ m.Groups[4].ToString() +
"
)
>
"
+
m.Groups[
5
].ToString()
+
"
</TABLE>
"
);
}
#endregion
处[glow=x][/glow]标记
#region
处[glow=x][/glow]标记
//
处[glow=x][/glow]标记
r
=
new
Regex(
@"
(\[glow=)(\d*?),(#*\w*?),(\d*?)\]([\S\t]*?)(\[\/glow\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<TABLE WIDTH=
"
+
m.Groups[
2
].ToString()
+
"
STYLE=FILTER:GLOW(COLOR=
"
+
m.Groups[
3
].ToString()
+
"
, STRENGTH=
"
+
m.Groups[
4
].ToString()
+
"
)>
"
+
m.Groups[
5
].ToString()
+
"
</TABLE>
"
);
}
#endregion
处[center][/center]标记
#region
处[center][/center]标记
r
=
new
Regex(
@"
(\[center\])([ \S\t]*?)(\[\/center\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<CENTER>
"
+
m.Groups[
2
].ToString()
+
"
</CENTER>
"
);
}
#endregion
处[IMG][/IMG]标记
#region
处[IMG][/IMG]标记
r
=
new
Regex(
@"
(\[IMG\])(http|https|ftp):\/\/([ \S\t]*?)(\[\/IMG\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<br><a onfocus=this.blur() href=
"
+
m.Groups[
2
].ToString()
+
"
_fcksavedurl=
"
+
m.Groups[
2
].ToString()
+
"
://
"
+
m.Groups[
3
].ToString()
+
"
target=_blank><IMG SRC=
"
+
m.Groups[
2
].ToString()
+
"
_fcksavedurl=
"
+
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>
"
);
}
#endregion
处[em]标记
#region
处[em]标记
r
=
new
Regex(
@"
(\[em([\S\t]*?)\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<img src=pic/em
"
_fcksavedurl
=
"
pic/em
""
+ m.Groups[2].ToString() +
"
.gif border
=
0
align
=
middle
>
"
);
}
#endregion
处[flash=x][/flash]标记
#region
处[flash=x][/flash]标记
//
处[mp=x][/mp]标记
r
=
new
Regex(
@"
(\[flash=)(\d*?),(\d*?)\]([\S\t]*?)(\[\/flash\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<a href=
"
+
m.Groups[
4
].ToString()
+
"
_fcksavedurl=
"
+
m.Groups[
4
].ToString()
+
"
TARGET=_blank><IMG SRC=pic/swf.gif _fcksavedurl=
"
pic
/
swf.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()
+
"
_fcksavedurl=
"
+
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>
"
);
}
#endregion
处[dir=x][/dir]标记
#region
处[dir=x][/dir]标记
//
处[dir=x][/dir]标记
r
=
new
Regex(
@"
(\[dir=)(\d*?),(\d*?)\]([\S\t]*?)(\[\/dir\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<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>
"
);
}
#endregion
处[rm=x][/rm]标记
#region
处[rm=x][/rm]标记
//
处[rm=x][/rm]标记
r
=
new
Regex(
@"
(\[rm=)(\d*?),(\d*?)\]([\S\t]*?)(\[\/rm\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<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>
"
);
}
#endregion
处[mp=x][/mp]标记
#region
处[mp=x][/mp]标记
//
处[mp=x][/mp]标记
r
=
new
Regex(
@"
(\[mp=)(\d*?),(\d*?)\]([\S\t]*?)(\[\/mp\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<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>
"
);
}
#endregion
处[qt=x][/qt]标记
#region
处[qt=x][/qt]标记
//
处[qt=x][/qt]标记
r
=
new
Regex(
@"
(\[qt=)(\d*?),(\d*?)\]([\S\t]*?)(\[\/qt\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<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/>
"
);
}
#endregion
处[QUOTE][/QUOTE]标记
#region
处[QUOTE][/QUOTE]标记
r
=
new
Regex(
@"
(\[QUOTE\])([ \S\t]*?)(\[\/QUOTE\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
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>
"
);
}
#endregion
处[move][/move]标记
#region
处[move][/move]标记
r
=
new
Regex(
@"
(\[move\])([ \S\t]*?)(\[\/move\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<MARQUEE scrollamount=3>
"
+
m.Groups[
2
].ToString()
+
"
</MARQUEE>
"
);
}
#endregion
处[FLY][/FLY]标记
#region
处[FLY][/FLY]标记
r
=
new
Regex(
@"
(\[FLY\])([ \S\t]*?)(\[\/FLY\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<MARQUEE width=80% behavior=alternate scrollamount=3>
"
+
m.Groups[
2
].ToString()
+
"
</MARQUEE>
"
);
}
#endregion
处[image][/image]标记
#region
处[image][/image]标记
//
处[image][/image]标记
r
=
new
Regex(
@"
(\[image\])([ \S\t]*?)(\[\/image\])
"
,RegexOptions.IgnoreCase);
for
(m
=
r.Match(sDetail); m.Success; m
=
m.NextMatch())
{
sDetail
=
sDetail.Replace(m.Groups[
0
].ToString(),
"
<img src=\
""
_fcksavedurl=
"
\
"""
+ m.Groups[2].ToString() +
"
\
"
border=0 align=middle><br>
"
);
}
#endregion
return
sDetail;
}
#endregion
}
}
查看全文
相关阅读:
解决PyQt5在安装后无法找到Designer.exe问题,两个位置可供参考
观察者模式
策略模式
模板方法模式(下)
学过的技术容易忘,怎么办?
Mysql主从配置
Springboot处理CORS跨域请求
SpringBoot学习2之注解简单配置Springboot+MyBatis
Confluence7.4安装并破解汉化教程
mysql json类型
原文地址:https://www.cnblogs.com/kokoliu/p/540319.html
最新文章
清华集训2016~2017选做
UNR#1 选做
UNR#2 选做
联合省选 选做
JSOI 选做
SDOI 选做
THUSC2021&PKUSC2021
HNOI 选做
NOI 选做
ZJOI 选做
热门文章
接口自动化设计思路记录
jmeter中的计数器,jmeter5.2.1
jmeter请求参数有空格时,需要勾选编码
jmeter在linux上的压测
jsonpath的用法
13th东北四省赛D.Master of Data Structure——暴力+虚树
[CF980E]The Number Games——贪心+倍增
回忆录
CCPC 2020 威海站
复健
Copyright © 2011-2022 走看看