PHP RegEx 查找图像标签并替换引号


PHP RegEx to find image-tags and replace quotes

我需要一个Php-RegEx来查找php字符串中的所有图像标签,并替换图像标签对象中的所有引号(如")。

$mystring = '<p class="testclass">test tag with p</p><p><img src="test1.jpg" width="100" /></p><p><img src="test2.jpg" width="100" /></p>';

我需要的结果如下:

<p class="testclass">test tag with p</p><p><img src=:quot:test1.jpg:quot: width=:quot:100:quot: /></p><p><img src=:quot:test2.jpg:quot: width=:quot:100:quot: /></p>

我已经测试了以下代码:

$rep_html = '<p class="testclass">test tag with p</p><p><img src="test1.jpg" width="100" /></p><p><img src="test2.jpg" width="100" /></p>';
$rep_html = preg_replace('#<img ([^"]) />#',":quot:", $rep_html);

或/和:

$rep_html = preg_replace('#<img (['x22]) />#',":quot:", $rep_html);

。不幸的是,代码不是这样工作的。引号的格式未为 :quote:。

我不需要带有"loadHTML"的Php "domDocument" ...只有 php 正则表达式 ...

也许有人可以帮助我?

搜索

<(?!img)[^>]*>[^<]*(*SKIP)(*FAIL)|"

替换为

:quot:

Regex101 示例,左侧有code generator,为您提供了代码的转义 PHP 版本。

我已经测试了以下代码:

$rep_html = '<p class="testclass">test tag with p</p><p><img src="test1.jpg" width="100" /></p><p><img src="test2.jpg" width="100" /></p>';
$rep_html = preg_replace('#<img ([^"]) />#',":quot:", $rep_html);

或/和:

$rep_html = preg_replace('#<img (['x22]) />#',":quot:", $rep_html);

。不幸的是,代码不是这样工作的。引号的格式未为 :quote:。

只需较少的步骤,您就可以使用此模式:

'G(?:(?!'A)|[^<]*+(?:<(?!img)[^>]*+>[^<]*+)*+<)[^">]*+'K"

演示

或者,您可以将@OnlineCop模式与 S 修饰符一起使用。