正则表达式图像名称网址

时间:2017-02-16 01:08:55

标签: php

我想将:改为_,如

<img src="http://domainname.com/image:name.jpg">

输出

<img src="http://domainname.com/image_name.jpg">

我有这个正则表达式,但它不起作用:

$f1content = preg_replace('/\<img src="\/\/(.*\.jpg"|.jpeg"|.gif" |.png"|.jpg">|.jpeg">|.gif">|.png">)/','/1',$content)

$result = str_replace(':', '_', $f1content);

1 个答案:

答案 0 :(得分:3)

如果您只想从image:name.jpg更改为image_name.jpg,可以使用以下内容:

<?php
    $name = "image:name.jpg";

    $name = preg_replace('/\:/','_',$name);

    echo $name;

这将回显image_name.jpg

根据this条目,您还可以使用比str_replace更快的preg_replace。这将是:

<?php
        $name = "image:name.jpg";

        $name = str_replace(':','_',$name);

        echo $name;

这也将回应image_name.jpg

如果您想要使用:中的http://....替换整个网址,可以使用\K

根据Maroun Maroun

  

\K告诉引擎假装匹配尝试开始于   这个职位。

使用以下代码:

<?php
    $name = '<img src="http://domainname.com/image:name.jpg">';

    $name = preg_replace('/[^http:]\K(:)/', '_', $name);

    echo $name;

它将回显<img src="http://domainname.com/image_name.jpg">。您可以看到一个有效的示例here