2012-07-20 31 views
2

我試圖使用正則表達式來檢測一個模式,但我有一個奇怪的問題。 這就是模式 -在php中使用正則表達式時奇怪的事情

"/sub\{(.*)\}/i" 

我使用的是這樣的:

if(preg_match("/sub\{(.*)\}/i",$item)) 
{ 
    $sub = explode("|",$item); 
    $sub_name = explode("{",$sub[0]); 
    $sub_name = $sub_name[1]; 
    ... 
} 

這裏是字符串 -

sub{selected posts|post[1]} 

好了,上面的字符串是好的,但是當我加入另一個這樣的項目 -

sub{selected posts|post[1],post[2]} 

編輯 - 問題出在我的菜單格式上,我在分節 中爆炸了「」符號,謝謝大家!

+2

你能顯示完整的代碼嗎? – bretterer 2012-07-20 19:28:14

+0

我添加了相關代碼。 你是什麼意思@Omega? – Yehonatan 2012-07-20 20:17:47

+0

「你不工作」是什麼意思?正則表達式匹配兩個字符串。 – 2012-07-20 20:46:02

回答

2

你需要躲避大括號這樣的:

"/sub\{(.*)\}/i" 
+0

我想同樣的事情,但後來我想知道爲什麼它爲第一個輸入工作。 – octern 2012-07-20 19:34:08

1

除了邁克寫道,確保通過preg_quote運行字符串轉義任何正則表達式字符。