C#写的UBB代码转换

<script language='javascript' src='http://www.shiqiaotou.com/donetk/Header.js'></script>

  在网上面虽然有许多在线编辑器,但我一般用不上那么多功能.想了很久,决定自己写一个简单的在线编辑器,支持几种简单的文字处理就行了,所以,很久以前就写了一个,但在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]的问题了,不过效率上会有点区别,稍微差一点,但访问量小的时候,没什么感觉的。呵呵。。。。。。

<script language='javascript' src='http://www.shiqiaotou.com/donetk/Footer.js'></script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值