请问正则匹配提取图片地址该怎么写?写了几种都不完整

suddenly2021 2017-07-04 05:13:59
url.normal="in.jpg"
url="222/2.jpg"
style="img/cc.png|0x000000"

需要提取到
in.jpg
222/2.jpg
img/cc.png


现在写了几种方式都不理想
(\"|\').*(\.png|\.jpg|\.jpeg)

["'](.*?)(?:\.jpe?g|\.png)
...全文
221 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongmei85 2017-07-05
  • 打赏
  • 举报
回复
$s = <<<'TEXT' url.normal="in.jpg" url="222/2.jpg" style="img/cc.png|0x000000" TEXT; preg_match_all('/(((http|https):\/\/)+(\w+\.)+(\w+))*[\w\/\.\-]*(jpg|gif|png)/',$s,$m); print_r($m[0]);
果酱很好吃 2017-07-05
  • 打赏
  • 举报
回复
你这些格式也没有通用支出,怎么写通用的方法
瞄了个猫 2017-07-05
  • 打赏
  • 举报
回复
上面的多个双引号,匹配以双引号开始的内容

正则:
(?<=").*(\.jpg|\.gif|\.png)
瞄了个猫 2017-07-05
  • 打赏
  • 举报
回复
这个你试试
".*(\.jpg|\.gif|\.png)
suddenly2021 2017-07-04
  • 打赏
  • 举报
回复
引用 2 楼 musoft2999 的回复:
[quote=引用 1 楼 jam00 的回复:]

$s = <<<'TEXT'
url.normal="in.jpg"
url="222/2.jpg"
style="img/cc.png|0x000000"
TEXT;

preg_match_all('#(normal|url|style)="([^\|"]+).*?"#i',$s,$m);
print_r($m[2]);
/*
Array
(
    [0] => in.jpg
    [1] => 222/2.jpg
    [2] => img/cc.png
)
*/
不好意思,可能我没说清楚,我的意思是说需要提取的数据是各种各样的,都由双引号包含,里面有图片后缀。不只是这三种格式。有没有什么通用的写法,可以提取出代码中包含图片的路径地址?[/quote] 还有如果格式不由引号开始,如set(url,123.png),set(url,456.png)),有没有什么通吃的提取办法? 谢谢
suddenly2021 2017-07-04
  • 打赏
  • 举报
回复
引用 1 楼 jam00 的回复:

$s = <<<'TEXT'
url.normal="in.jpg"
url="222/2.jpg"
style="img/cc.png|0x000000"
TEXT;

preg_match_all('#(normal|url|style)="([^\|"]+).*?"#i',$s,$m);
print_r($m[2]);
/*
Array
(
    [0] => in.jpg
    [1] => 222/2.jpg
    [2] => img/cc.png
)
*/
不好意思,可能我没说清楚,我的意思是说需要提取的数据是各种各样的,都由双引号包含,里面有图片后缀。不只是这三种格式。有没有什么通用的写法,可以提取出代码中包含图片的路径地址?
果酱很好吃 2017-07-04
  • 打赏
  • 举报
回复

$s = <<<'TEXT'
url.normal="in.jpg"
url="222/2.jpg"
style="img/cc.png|0x000000"
TEXT;

preg_match_all('#(normal|url|style)="([^\|"]+).*?"#i',$s,$m);
print_r($m[2]);
/*
Array
(
    [0] => in.jpg
    [1] => 222/2.jpg
    [2] => img/cc.png
)
*/

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧