PHP替换除图像alt之外的文本

时间:2013-04-01 21:58:44

标签: php preg-replace

我想将"hello"替换为"guys",除了图像src和alt与PHP(不区分大小写)。

Hello hello HELLO <img src="hello.jpg" alt="hello" />

我想要

Guys guys GUYS <img src="hello.jpg" alt="hello" />

guys guys guys <img src="hello.jpg" alt="hello" />

我尝试使用str_replacestr_ireplacepreg_replace,但没有结果。

2 个答案:

答案 0 :(得分:2)

如果你想要同时匹配两个hello以及alt =“和src =”,那么你可以对这两个使用“负向外观”。类似的东西:

$string = 'Hello hello HELLO <img src="hello.jpg" alt="hello" />';
preg_replace('/(?<!(src|alt)=")hello/i', 'guys', $string);

答案 1 :(得分:1)

您想要使用“负面前瞻”。这是我的概念证明代码。

<?php
$string = "Hello, hello, HELLO hello.jpg";
print preg_replace("/hello(?!.jpg)/i", 'Guys', $string);

打印

Guys, Guys, Guys hello.jpg