2009-12-13 54 views
0

這就是我爲我的RegEx所得到的,我想知道這是否是最好的方法。正則表達式,preg_replace_callback問題PHP

我希望能夠找到類似的東西,無論標識符之間的間距是多少,而且不區分大小寫。如果可能的話,不用擔心爲了..

例子:

[Foreclosure ="Remax" URL="http://www.remax.com" Title = "4 Bedroom 2 Bath Condo"] 
[Foreclosure ="Remax"URL="http://www.remax.com"Title="4 Bedroom 2 Bath Condo"] 
[Foreclosure = "Remax" URL="http://www.remax.com"  Title = "4 Bedroom 2 Bath Condo" ] 

這裏是我現有的代碼:

function ForeclosureCode_filter($buffer) 
{ 
    //There might be a better way to do the regex... But this seems to work... 
    $buffer = preg_replace_callback('@\[Forclosure *=*"(.*?)" *url *=*"(.*?)" *title="(.*?)" *\]@si', 
     "ForeclosureCode_replace", $buffer); 
    return $buffer; 
} 
+0

這聽起來居高臨下......答案:0或以上的表達式。 在我的防守中,我根本沒有使用RegEx .. – Brad 2009-12-13 13:22:49

+0

爲什麼這幾個= *然後呢? – 2009-12-13 13:31:01

+0

因爲我真的不知道我在用RegEx做什麼......它對我來說仍然有點混亂。我至少在「試着」弄明白,VS要求別人爲我做所有的工作。我可以這麼說,這是什麼正則表達式。 – Brad 2009-12-14 02:55:53

回答

5

我會使用\s*匹配不定數量的空白;這允許你包含所有形式的空白,而不僅僅是普通空間(因此你可以匹配標籤等)。

'@\[Foreclosure\s*=\s*"(.*?)"\s*url\s*=\s*"(.*?)"\s*title="(.*?)"\s*\]@si' 
+0

完美的作品,謝謝Dav。 – Brad 2009-12-13 13:27:22

+2

然後接受他的回答! – 2009-12-13 13:43:03