2012-11-06 58 views
-2
[foreach:regex] 
    [r_hello] 
[/foreach] 

試圖上述匹配:regex$1之間[foreach:regex][/foreach](與字之間:])將和任何將$2PHP正則表達式符合此:

到目前爲止,我有這樣的:/\[foreach:(.*)\](.*)\[\/foreach\]/s

但我發現了這個錯誤:Notice: Undefined index: regex] [r_hello

+0

空格是通向'[r_hello]'的空間字符數還是製表符? –

+0

Tab字符,抱歉的混淆。 – user18933

回答

1

嘗試:

/\[foreach:([^\]]*)\]\s*\[([^\]]*)\]\s*\[\/foreach\]/s 

http://phpfiddle.org/main/code/7av-ypa

的問題是:

  1. 你是貪婪匹配一個或多個任意字符,可避免在這裏
  2. 你不是佔空白
  3. 你不是佔方括號arounf中心項目(換行和製表符)的。
+0

不匹配。謝謝你的嘗試。 – user18933

+0

@ user18933正確,固定。 –

+0

@ user18933 http://rubular.com/r/LgYk9tDWMA –