熟悉正则表达式的大侠看过来小弟遇到点问题现在从数据库读取一段字符串,使用正则表达式判断是否含有“http://”字符串并且处理成标签可点击的目前小弟纠结的是,如果连续的“http://”挨在一起正则就只能判断为一个连接了,不知道该怎么处理了-——水平有限啊。。。例如“http://dfhakoadghttp://daidgjiadpugidua”识别成http://dfhakoadg和http://daidgjiadpugidua 分享到: ------解决方案--------------------//只要保证你的url含有http开头的话,可以不使用正则:$s = 'http://dfhakoadghttp://daidgjiadpugidua';$a = explode('http://', $s);foreach($a as $r) { if($r) echo "http://$r", '';}//http://dfhakoadg//http://daidgjiadpugidua登录后复制------解决方案--------------------$str="ahahttp://www.chinindfaasdl.comahahttp://www.chinindfaasdl.comhahahahttp://www.chinindfaasdl.com嗲话地哦862189375829http://www.chinindfaasdl.comhiaohdgioas862189375829http://www.chinindfaasdl.comhiaohdgioas撒旦法经理卡数据的分类http://www.chinindfaasdwfdfsdl.com";$str = preg_replace('/(http:\/\/.*?\.com)/', 'click', $str);var_dump($str);登录后复制登录后复制不知道你要换哪里? 我加了个click------解决方案--------------------引用:Quote: 引用:$str="ahahttp://www.chinindfaasdl.comahahttp://www.chinindfaasdl.comhahahahttp://www.chinindfaasdl.com嗲话地哦862189375829http://www.chinindfaasdl.comhiaohdgioas862189375829http://www.chinindfaasdl.comhiaohdgioas撒旦法经理卡数据的分类http://www.chinindfaasdwfdfsdl.com";$str = preg_replace('/(http:\/\/.*?\.com)/', 'click', $str);var_dump($str);登录后复制登录后复制不知道你要换哪里? 我加了个click感谢回答,不过只能筛选出.com的话不是我想达到的结果。。。感觉http后面那一堆要筛选出除了“http://”以外的东西目前应该不能完美的解决你这个问题。因为http与下一个之间可能还有其它string,而这些又符合url规则,所以程序根本不能判断这string是属于上一个的url,还是两个url之间的间隔------解决方案--------------------$str="ahahttp://www.chinindfaasdl.comahahttp://www.chinindfaasdl.comhahahahttp://www.chinindfaasdl.com嗲话地哦862189375829http://www.chinindfaasdl.comhiaohdgioas862189375829http://www.chinindfaasdl.comhiaohdgioas撒旦法经理卡数据的分类http://www.chinindfaasdwfdfsdl.com";echo preg_replace('#http://[\w\.-]+\.(com------解决方案--------------------net------解决方案--------------------org------解决方案--------------------hk------解决方案--------------------info------解决方案--------------------cc------解决方案--------------------edu)#s', '$0', $str);登录后复制