我寫了一個正則表達式,我在rubular.com中測試過,它返回了4個匹配項。測試的主題可以在這裏找到http://pastebin.com/49ERrzJN和PHP代碼如下。由於某些原因,PHP代碼只返回前兩個匹配項。如何使它匹配所有4?這似乎與貪婪等有關。PHP preg_match_all問題
$file = file_get_contents('x.txt');
preg_match_all('~[0-9]+\s+(((?!\d{7,}).){2,20})\s{2,30}(((?!\d{7,}).){2,30})\s+([0-9]+)-([0-9]+)-([0-9]+)\s+(F|M)\s+(.{3,25})\s+(((?!\d{7,}).){2,50})~', $file, $m, PREG_SET_ORDER);
foreach($m as $v) echo 'S: '. $v[1]. '; N: '. $v[3]. '; D:'. $v[7]. '<br>';
你究竟想要提取什麼? – Druzion
Ruby Ruby不是rubular.com嗎? – Laurel
@Druzion:姓名,出生日期,性別最重要 – pedmillon