2012-08-12 73 views
0

我想用preg_match獲取<FONT COLOR="#0000ff">(insert some text here)<\/FONT>。與此類似的行重複並相互接觸,所以如果我嘗試一些類似<FONT COLOR="#0000ff">(?<NAME>+)<\/FONT>的通用類型,它會將它們全部作爲一個單元格提取。所以我扔在[^<],使其停止在第一次比它遇到的,因此保持它包括HTML,因此是一個單元格...在PHP正則表達式中匹配不包含

但是,我正在提取的文本有時包含我想要的HTML。有沒有辦法使用[^]</F?我對負面展望的嘗試並沒有奏效,因爲它「是的,最終肯定有一個關閉的字體標籤,最好不要返回任何東西。」

回答

2

如果我正確理解你,你需要一個RegEx來執行非貪婪的匹配。例如,

如果查詢字符串是:<x> abc </x> <x> def </x> <x> hig </x>

我們的正則表達式是:/<x>(.*)<\/x>/

然後執行一個貪婪的匹配,什麼是返回是整個查詢字符串,因爲它滿足了正則表達式。爲了避免它,我們使用非貪婪的匹配。

新的正則表達式:/<x>(.*?)<\/x>/

它應該返回三個變量與preg_match_all()

+0

這是更簡單的於預期,但正是我一直在尋找。謝謝。 – Rhyono 2012-08-12 04:19:44