我想将:
改为_
,如
<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);
答案 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
。
\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。