正则匹配图片标签 <img src='' >
此正则<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*["']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n"'<>]...
此正则 <img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*["']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n"'<>]*)[^<>]*?/?[\s\t\r\n]*> 为什么不能匹配 如下图片
<img src="/AspxPath/UploadFiles/Images/ChaZuo .jpg" /> 图片名称中有空格
求教...
非常感谢 各位的指教, 尝试过网友 pakil94 的Demo 也不行.
<img src="/AspxPath/UploadFiles/Images/ChaZuo .jpg" /> 中图片名称中有空格,
如 ChaZuo空格.jpg 何解 我已经使用正则匹配空格,还是不行 展开
<img src="/AspxPath/UploadFiles/Images/ChaZuo .jpg" /> 图片名称中有空格
求教...
非常感谢 各位的指教, 尝试过网友 pakil94 的Demo 也不行.
<img src="/AspxPath/UploadFiles/Images/ChaZuo .jpg" /> 中图片名称中有空格,
如 ChaZuo空格.jpg 何解 我已经使用正则匹配空格,还是不行 展开
3个回答
展开全部
/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg转
/TestDemo/Tpl/default/File/Uploads/2010_9_6/1283591048.jpg
根据你题目里面举例的这种对比的需求,转换条件认为是
“/Public/Files/全日期/数字.jpg”形式的图片转换成
“/File/Uploads/紧缩日期/数字.jpg”形式的图片。如果实际你的需求有所不同,可以根据这个略微对正则做修改。代码替换部分如下:
$str1 = "<p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg\" width=\"32\" border=\"0\" />来留言看看这的风景好吗 <img alt=\"\" src=\"/TestDemo/Public/kindeditor/plugins/emoticons/13.gif\" border=\"0\" /></p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_12_01/88668866.jpg\" width=\"32\" border=\"0\" />";
//这里多举一个图片例子试试
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d_)[0]?(\d_)[0]?(\d\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2$3$4$5",$str1);
?>
//规则有不同的话你可以这里对比修改下正则参数。good luck~
//----------------------------------------
既然需求少了那么多,就可以
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d_\d_\d\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2",$str1);
行了,如果对图片的格式限制不严格(严格点的就需要在尾巴那里罗列出来),可以再简化成
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d_\d_\d\/\d+[.][a-zA-Z]+\")/","$1/File/Uploads$2",$str1);
/TestDemo/Tpl/default/File/Uploads/2010_9_6/1283591048.jpg
根据你题目里面举例的这种对比的需求,转换条件认为是
“/Public/Files/全日期/数字.jpg”形式的图片转换成
“/File/Uploads/紧缩日期/数字.jpg”形式的图片。如果实际你的需求有所不同,可以根据这个略微对正则做修改。代码替换部分如下:
$str1 = "<p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg\" width=\"32\" border=\"0\" />来留言看看这的风景好吗 <img alt=\"\" src=\"/TestDemo/Public/kindeditor/plugins/emoticons/13.gif\" border=\"0\" /></p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_12_01/88668866.jpg\" width=\"32\" border=\"0\" />";
//这里多举一个图片例子试试
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d_)[0]?(\d_)[0]?(\d\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2$3$4$5",$str1);
?>
//规则有不同的话你可以这里对比修改下正则参数。good luck~
//----------------------------------------
既然需求少了那么多,就可以
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d_\d_\d\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2",$str1);
行了,如果对图片的格式限制不严格(严格点的就需要在尾巴那里罗列出来),可以再简化成
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d_\d_\d\/\d+[.][a-zA-Z]+\")/","$1/File/Uploads$2",$str1);
展开全部
\<img\s*src=\"(?<img>.*?)\"\s\/\> 结果是:"AspxPath/UploadFiles/Images/ChaZuo .jpg"
\<img\s*src=\"(?<img>.*?)\.(jpg|gif)\"\s\/\> 结果是: "/AspxPath/UploadFiles/Images/ChaZuo "
希望对您有一点点帮助
\<img\s*src=\"(?<img>.*?)\.(jpg|gif)\"\s\/\> 结果是: "/AspxPath/UploadFiles/Images/ChaZuo "
希望对您有一点点帮助
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
经测试能匹配,楼主是不是其它地方弄错了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询