我需要一个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 修饰符一起使用。