C#写的UBB代码转换

王朝c#·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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

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

//处理[/b]

r = new Regex(@"[b]([Ss]*?)");

m = r.Match(str);

while(m.Success)

{

str = str.Replace(m.Groups[0].ToString(),"<b>"+m.Groups[1]+"</b>");

m = r.Match(str);

}

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航