我想替换我所有的图像(用自己的特殊属性)
<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>