这条简单的正则怎么写。。 <?php$pat = "!src=\"([^(\"|http)]*)\"!ieU";$str = 'src="http://www" ';if(preg_match($pat,$str)){ echo "匹配成功";}else{ echo "失败";}我想匹配出 href= src= 这些如果不是以http开头就替换里面的内容, 是以http开头的就不替换上面的正则哪里错了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你试下,我没发现问题$pat='/(src\=[\"\']?http)+|(href\=[\"\']?http)+/';$str = 'src="http://www" ';if(preg_match($pat,$str)){ echo "匹配成功";}else{ echo "失败";} 方括号中的内容是一个个并列的字符,不是你这样成组使用的你可能需要的是这样$pat = '/src="(?!http).*"/iU';$str = 'src="http://www" src="ftp://www"';echo preg_replace($pat, 'xxx', $str);src="http://www" xxx不过这只是实验室代码,实际应用时会有很多麻烦 我的需求就是页面里 src="/aa/aa" href="http://" 这样的如果" "里面不是http开头的,就在他前面加上/bb => src="/bb/aa/aa"如果是http开头的就不替换,这种正则怎么写。。正则不是很熟悉大家可以无视我上面的代码。 像这样?非http:,http://www.开头的,补全URL?$testurls = array( 'http://www.freenewspos.com/italia/creativecommons-photo-album#!POS__calcio&num=0', 'freenewspos.com/italia/creativecommons-photo-album#!POS__NBA&num=0', 'www.freenewspos.com/italia/creativecommons-photo-album#!POS__Twilight&num=0'); foreach($testurls as $singleurl){ echo preg_replace('#(?:http(s)?://)?(?:www\.)?(.+)#', 'http\1://www.\2', $singleurl).'<br />';} PHP 网站中毒啦,删除过两天又来 网上也没有解决 办法 有没有高人知道啊 这样的循环怎么做? 关于php压缩解压缩文件的问题 大家怎么处理tag 一个关于数值传递的问题.... 弹出窗口传值的问题。郁闷了一下午! 关于exec()和system() php里用什么方法可以实现asp里的appication变量? 哪为仁兄帮给忙,问一下怎么做检测是否在线? 微信公众号开发为什么Token验证失败? 关于PDO里自动转义的问题 PHP如何从一段格式标准的字符串中提取自己需要的信息?
$pat='/(src\=[\"\']?http)+|(href\=[\"\']?http)+/';
$str = 'src="http://www" ';if(preg_match($pat,$str)){
echo "匹配成功";
}else{
echo "失败";
}
$pat = '/src="(?!http).*"/iU';
$str = 'src="http://www" src="ftp://www"';
echo preg_replace($pat, 'xxx', $str);src="http://www" xxx不过这只是实验室代码,实际应用时会有很多麻烦
我的需求就是页面里 src="/aa/aa" href="http://" 这样的
如果" "里面不是http开头的,就在他前面加上/bb => src="/bb/aa/aa"
如果是http开头的就不替换,这种正则怎么写。。
正则不是很熟悉
大家可以无视我上面的代码。
'http://www.freenewspos.com/italia/creativecommons-photo-album#!POS__calcio&num=0',
'freenewspos.com/italia/creativecommons-photo-album#!POS__NBA&num=0',
'www.freenewspos.com/italia/creativecommons-photo-album#!POS__Twilight&num=0');
foreach($testurls as $singleurl){
echo preg_replace('#(?:http(s)?://)?(?:www\.)?(.+)#', 'http\1://www.\2', $singleurl).'<br />';
}