我試圖找出一個字符串使用preg_match_all
有雙引號之間的任何話,但它的複製結果與第一個結果具有兩組雙引號兩側,其中作爲字符串被搜索只擁有一組。preg_match_all爲什麼會返回兩個匹配項?
這裏是我的代碼:
$str = 'Test start. "Test match this". Test end.';
$groups = array();
preg_match_all('/"([^"]+)"/', $str, $groups);
var_dump($groups);
而且VAR轉儲產生:
array(2) {
[0]=>
array(1) {
[0]=>
string(17) ""Test match this""
}
[1]=>
array(1) {
[0]=>
string(15) "Test match this"
}
}
正如你所看到的第一個數組是錯誤的,爲什麼preg_match_all
返回呢?
離開了括號,或添加一些括號,閱讀手冊,你會解決它 – 2014-10-28 11:01:03
請定義*錯*。這不符合你的期望http://php.net/preg_match_all給出了什麼? – hakre 2014-10-28 11:07:25
由於您沒有定義錯誤,因此您可能會在這裏混淆var_dump的輸出? – hakre 2014-10-28 11:14:38