preg_replace(#((mms|http|https|ftp|telnet)(://)[.:@/\w\?\=\-\&\_\#\;\%\,\!\+]+)#i,\\1,$text);
上面是给一段文字里面的网址自动加链接的,但是有的ubb代码的链接不能自动加链接,要怎么排除?因为ubb会自动转换为链接。  
 比如这个: http://bbs.csdn.net/topics/new?forum_id=phpbase  
 怎么排除有[url]或者[img]这种标签里面的链接不要自动加链接?或者有没有其它正则可以做到?  
 谢谢!
回复讨论(解决方案)   比如这个:【ubb】http://bbs.csdn.net/topics/new?forum_id=phpbase【/ubb】 
   或者说我又要对ubb代码转换,又要对没有被ubb代码包起来的网址自动加上链接,怎么做到? 
   试试  
 preg_replace(#(?\\1,$text); 
   $text =<<=【)?#isu,$1$2,$text);
上面是给一段文字里面的网址自动加链接的,但是有的ubb代码的链接不能自动加链接,要怎么排除?因为ubb会自动转换为链接。  
 比如这个:http://bbs.csdn.net/topics/new?forum_id=phpbase  
 比如这个:【ubb】http://bbs.csdn.net/topics/new?forum_id=phpbase【/ubb】 
   试试  
 preg_replace(#(?
好象可以,但是不是[ubb\]标签,上面1楼写错,应该是[img]和[url]这些标签,可以把[ubb\]换成[url\],但只能排除一个标签,怎么写可以排除多个?如还要排除[img\] 
   $text =<<=【)?#isu,$1$2,$text);
上面是给一段文字里面的网址自动加链接的,但是有的ubb代码的链接不能自动加链接,要怎么排除?因为ubb会自动转换为链接。  
 比如这个:http://bbs.csdn.net/topics/new?forum_id=phpbase  
 比如这个:【ubb】http://bbs.csdn.net/topics/new?forum_id=phpbase【/ubb】
====  
 这个【】号其实是[]这个号,因为个写成[]时在这里会自动转成链接看不到,所以写成【】 
   你自己换一下不就行了?  $text =<<< txt上面是给一段文字里面的网址自动加链接的,但是有的ubb代码的链接不能自动加链接,要怎么排除?因为ubb会自动转换为链接。比如这个:http://bbs.csdn.net/topics/new?forum_id=phpbase比如这个:[ubb]http://bbs.csdn.net/topics/new?forum_id=phpbase[/ubb]txt;echo preg_replace(#([^]])((mms|http|https|ftp|telnet)(://)[.:@/\w\?\=\-\&\_\#\;\%\,\!\+]+)#isu,$1$2,$text);
你自己换一下不就行了?  $text =<<=\[)?#isu,$1$2,$str);
后面那个也可以,谢谢。。。。 
   还有一个问题,就是前面有=号的怎么处理?就是这种格式:  
 [url=http://bbs.csdn.net/topics/new?forum_id=phpbase] 
   谢谢,我改成这样可以:  
 echo preg_replace(#([^]|=])((mms|http|https|ftp|telnet)(://)[.:@/\w\?\=\-\&\_\#\;\%\,\!\+]+)#isu,$1$2,$text);
   
 
   