当前位置:编程学习 > C#/ASP.NET >>

一个处理文本内容的方法

方法如下:
public string Texttohtml(string chr)
{
if(chr==null)
return "";
chr=chr.Replace(" "," ");
chr=chr.Replace("<","<");
chr=chr.Replace(">",">");
chr=chr.Replace("\n","<br>");
chr=chr.Replace("\t","   ");
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]",@"<a href=""$1"" target=""_blank""><IMG SRC=""$1"" border=0></a>",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,@"\[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,@"\
引用
(?<x>.*)\
",@"以下内容为引用:<table border='0' width='100%' cellpadding='10' cellspacing='1' bgcolor='#000000'><tr><td bgcolor='#FFFFFF'>$1</td></tr></table>",RegexOptions.IgnoreCase);
chr = Regex.Replace(chr,@"\[gif](?<x>[^\]]*)\[/gif]",@"<IMG SRC='Pic/Gif.gif' border=0>此主题相关图片如下:<br><a href=""$1"" target=""_blank""><IMG SRC=""$1"" border=0></a><br>",RegexOptions.IgnoreCase);
chr = Regex.Replace(chr,@"\[jpg](?<x>[^\]]*)\[/jpg]",@"<IMG SRC='Pic/Jpg.gif' border=0>此主题相关图片如下:<br><a href=""$1"" target=""_blank""><IMG SRC=""$1"" border=0></a><br>",RegexOptions.IgnoreCase);
chr = Regex.Replace(chr,@"\[zip](?<x>[^\]]*)\[/zip]",@"<a href=""$1"" target=""_blank""><IMG SRC='Pic/Zip.gif' border=0>请点击此处下载</a><br>",RegexOptions.IgnoreCase);
chr = Regex.Replace(chr,@"\[rar](?<x>[^\]]*)\[/rar]",@"<a href=""$1"" target=""_blank""><IMG SRC='Pic/Rar.gif' border=0>请点击此处下载</a><br>",RegexOptions.IgnoreCase);
//chr = Regex.Replace(chr,@"(?<x>[http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)])",@"<a href='$1' target='_blank'>$1</a>",RegexOptions.IgnoreCase);

MatchCollection mc;
Regex r = new Regex(@"\[code\](.[^\[]*)\[/code\]");
mc = r.Matches(chr);
for(int i = 0; i < mc.Count; i++)
{
chr = chr.Replace(mc[i].ToString(),Code(mc[i].ToString()));
}
chr = Regex.Replace(chr,@"\[code\](?<x>[^\]]*)\[/code\]",@"以下内容为程序代码:<table border='0' width='100%' cellpadding='10' cellspacing='1' bgcolor='#000000'><tr><td bgcolor='#FFFFFF'>$1</td></tr></table>",RegexOptions.IgnoreCase);


r = new Regex(@"\[html\](.[^\[]*)\[/html\]");
mc = r.Matches(chr);
for(int i = 0; i < mc.Count; i++)
{
chr = chr.Replace(mc[i].ToString(),Html(mc[i].ToString()));
}
chr = Regex.Replace(chr,@"\[html\](?<x>[^\]]*)\[/html\]",@"以下内容为页面代码:<table border='0' width='100%' cellpadding='10' cellspacing='1' bgcolor='#000000'><tr><td bgcolor='#FFFFFF'><font color='#0000FF'>$1</font></td></tr></table>",RegexOptions.IgnoreCase);
// chr=ReplaceBadWord(chr);

return(chr);
}

这个方法对“文本内容”进行了怎样的处理???说说思路??? --------------------编程问答-------------------- 你先去看一下正则表达式的知识。 --------------------编程问答-------------------- 正则表达式处理 --------------------编程问答-------------------- 替换UBB编辑器内容,显示为html  标签 --------------------编程问答-------------------- 就是把一些UBB内容,例如
[url..][/url]替换成<a></a>
[img..][/img]替换成<a><img.../></a>
[fly][/fly]替换成<marquee></marquee>等 --------------------编程问答-------------------- HTML 标签转换。。。 --------------------编程问答--------------------
引用 5 楼 wxr0323 的回复:
HTML 标签转换。。。


噢,明白了。。。 --------------------编程问答-------------------- 居然把正则这样用,是不是该拉出来暴打一顿。。。

有太多可以合并的了
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,