2013-06-20 107 views
1

$匹配,則返回一個空數組...preg_match_all返回空數組

這不起作用

$missedvalue = $_GET['missedvalue']; 
$pattern = "/(?:\"(?:\\\\\"|[^\"])+\")/is"; 
preg_match_all($pattern, $missedvalue, $matches); 

但這個工程

$missedvalue = 'test "gift card"'; 
$pattern = "/(?:\"(?:\\\\\"|[^\"])+\")/is"; 
preg_match_all($pattern, $missedvalue, $matches); 

請告訴我交易?我不能放棄我的手指...我試圖鑄$missedvalue(string),但沒有奏效。我很茫然。哦和$_GET['missedvalue']絕對等於test "gift card"

回答

1

爲什麼不能在模式中使用單引號是這樣的:

+0

因爲我偶然發現正則表達式,總是不得不使用我能找到的東西..但是使用你的正則表達式仍然沒有幫助。 – Banning

+1

你能告訴我輸出'var_dump($ _ GET ['missedvalue']);' – anubhava

+0

'string'test "禮品卡"'(長度= 26)' – Banning

1

我已經盡我機器上的代碼,它爲我工作。在運行regexp之前,也許你正在做一些事情來處理$ pattern或一些預處理過程。

+0

我只是試過這個'str_replace(''','=',$ _REQUEST ['missedvalue'])',它並不刪除雙引號.. hmmmm – Banning