webdn
 
  首页     免费截图     VIP会员区     广告Banner     技术文档     网站模板  
网站截图,网站每日新 !
虚拟主机
网页模板


 

C#写的UBB代码转换

【摘 要】想了很久,决定自己写一个简单的在线编辑器,支持几种简单的文字处理就行了,所以,很久以前就写了一个,但在UBB转换这一块是用的别人的代码,谁写的我忘了,可是别人的代码使用的时候会用很多问题。
  

在网上面虽然有许多在线编辑器,但我一般用不上那么多功能.想了很久,决定自己写一个简单的在线编辑器,支持几种简单的文字处理就行了,所以,很久以前就写了一个,但在UBB转换这一块是用的别人的代码,谁写的我忘了,可是别人的代码使用的时候会用很多问题,如[b][b]aaa[/b][/b]就不能很好的实现,结果就成了<b>[b]aaa</b>[/b],很是让我头疼,不得不提醒使用的人,千万不要出现[b][b] aaa[/b][/b]这种情况。不过现在好多了,研究了许久,原来别人是为了提高速度。下面看看两种的区别。

  别人的:r是Regex对象,m是Match对象。for(m=r.match(); m.success; m=m.nextMatch()){......}问题就出在m=m.nextMatch(),它是从上一个匹配之后寻找下一个匹配。为了避免这种情况出现,我把它改下了一下,

//处理[b][/b]
r = new Regex(@"\[b]([\S\s]*?)\[/b]");
m = r.Match(str);
while(m.Success)
{
str = str.Replace(m.Groups[0].ToString(),"<b>"+m.Groups[1]+"</b>");
m = r.Match(str);
}

  这样就可以解决[b][b]aaa[/b][/b]的问题了,不过效率上会有点区别,稍微差一点,但访问量小的时候,没什么感觉的。



电话咨询:010-60520722 QQ咨询:3792656   |   583696287   |   66733350 关于WebDN  |  站点地图  |  联系我们  |  支付方式  |  友情链接
© 2004-2008 WebDN.com 版权所有. 沪ICP备05040479号