不用正则也可以吧,不知这样满足你需求,正则不划算(呵,开玩笑了)
$str0 = "c:\$21\a23.gif;d:\image\11\j72.gif;c:\$21\a23.gif";
$tmp = explode(";", $str0);
foreach($tmp as $imsrc)
{
$basename = basename($imsrc);
echo "image\\".$basename."<br>";
unset($basename);
}
$str0 = "c:\$21\a23.gif;d:\image\11\j72.gif;c:\$21\a23.gif";
$tmp = explode(";", $str0);
foreach($tmp as $imsrc)
{
$basename = basename($imsrc);
echo "image\\".$basename."<br>";
unset($basename);
}
$b = preg_replace("/c:\\$21/", "imagge", $a);
$b = preg_replace("/d:\\\image\11/", "jimagge", $b);
echo $b;不晓得楼主的确切意思,只能凭自己理解写了
$str='c:\$21\a23.gif;\image\ss\sds\..\abc\345346.gif;d:\image\11\j72.gif';
preg_match_all("/\\\\{1}.[^\.|\\\\]*.gif[;]{0,1}/is",$str,$matches);
$result="";
foreach($matches[0] as $key=>$v){
$result.="imagge".$v;
}
echo $result;
die();
?>
$str='c:\$21\a23.gif;\image\ss\sds\..\abc\345346.gif;d:\image\11\j72.gif';
preg_match_all("/\\\\{1}.[^\.|\\\\]*.gif[;]{0,1}/is",$str,$matches);
$result="";
foreach($matches[0] as $key=>$v){
$result.="imagge".$v;
}
echo $result;
die();
?>
c:\\$21\\a23.gif;d:\\image\\11\\j72.gif
c:\\$21\\a23.gif
TEXT;echo str_replace(array('c:\\$21', 'd:\\image'), array('imagge','jimagge'), $s);out
imagge\a23.gif;jimagge\11\j72.gif
imagge\a23.gif 注意:明文书写时串中的\要写做\\
c:\$21\a23.gif;d:\image\11\j72.gif
替换成imagge\a23.gif;jimagge\72.gif这块的“jimage”应该是“image”。写错了其实是想用ereg_replace()或preg_replace()来实现,不知道有没这可能?
([^;\\]+\\)*([^;]+)替换为:
images\$2测试工具:
http://www.regexlab.com/zh/replshop.asp?pat=%28%5B%5E%3B%5C%5C%5D%2B%5C%5C%29*%28%5B%5E%3B%5D%2B%29&rto=images%5C%242&txt=c%3A%5C%2421%5Ca23.gif%3Bd%3A%5Cimage%5C11%5Cj72.gif%3Bc%3A%5C%2421%5Ca23.gif