我正在尋找所有我的bbcode圖像有一個鏈接連接到他們被解析之前正常[img]標籤解析完成在我的代碼,這是因爲我的正常[img]標籤,如果他們沒有鏈接變成一個燈箱。困惑在正則表達式
$find = array(
"/\[url=(.+?)\](?=\[img\](.+?)\[\/img\])\[\/url\]/is"
);
$replace = array(
"<a href=\"$1\" target=\"_blank\"><img src=\"$2\" class=\"bbcodeimage img-polaroid\" alt=\"[img]\" /></a>"
);
$body = preg_replace($find, $replace, $body);
完全錯誤的,因爲它實際上並沒有做任何事情,看來我對整個事情前瞻完全糊塗捕捉[IMG]前有一個[URL]標籤和相應的更換。
...或者你可以只使用DOM和XPath,讓你的生活更輕鬆...找到其他節點內部的節點是XPath查詢的基石特性。 –
除非他正在處理不能被DOM/XPath解析器解析的格式錯誤的HTML。在這種情況下,我會說「修復你的html和^」 – crush
@MarcB我們應該停止評論「使用DOM!」到最正則的表達主題。 DOM運行良好,但不像簡單任務那樣簡單。使用正則表達式不會傷害! – revo