将自制的image-dl属性替换为正确的image dl标签


Replace selfmade image-dl-attribute into correct image dl tag

我想替换我所有的图像(用自己的特殊属性)

<img width="720" height="321" dl="text-text-text-text" alt="Marl's Palace of Sin" src="/images/sin-ambiente.jpg" title="Innenansichten des Hauses">

<dl class="imgLeft">
  <dt>
     <img width="720" height="321" alt="Marl's Palace of Sin" src="/images/sin-ambiente.jpg" title="Innenansichten des Hauses">
 </dt>
  <dd>text-text-text-text</dd>
</dl>

my PHP function

function dlSytler($htmlContent)
{
    $regex = '#<img([^>]*).*dl="([^"/]*/?[^".]*'.[^"]*)"([^>]*).*>#'; 
    $replace = '<dl class="imgLeft"><dt><img$1 $3> </dt> <dd>$2</dd> </dl>';
    $htmlContent = preg_replace($regex, $replace, $htmlContent); 
    return $htmlContent;
}

问题是,替换不工作的每一个图像(我不知道为什么)。

我认为我的regex-rule不完美。有人能帮帮我吗?

你问问题出在哪里,我尽量给你指点。

对于初学者来说,[^>]*.*的概念没有意义。它会说"要么特定匹配X,要么不匹配,要么匹配任何东西,要么不匹配"在这种情况下,匹配任何东西都很容易。

这个更简单。

Search: (<img.*?)(dl=.*?)(alt=[^>]*>)

替换:<dl class="imgLeft"><dt>'1'3</dt><dd>'2</dd></dl>

演示