2013-10-08 95 views
0

我試圖找到的preg_match正確的字符串在這種情況下文件獲取內容的preg_match

這是我想要的數據刮

<td style="background-color:#FFFF66;font-weight:bold;">08/21/2013</td><td> 

我只需要在2013年8月21日 如果我只打印$ file_string,它會在我試圖提取該日期時打印整個頁面。我有一種感覺,它與引用或斜槓我已經試過這個和其他幾個組合nogo

preg_match("/bold;\">(.+)\<\/td><td>/i", $file_string, $matches); 
$print = "$matches[1]"; 
echo $print; 

回答

1

這個怎麼樣?

preg_match("/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/", $file_string, $matches); 
+1

使用\ d代替[0-9]'#\ d {2}/\ d {2}/\ d {4}#' –

+0

感謝球員我都嘗試那些和在閱讀他們,他們做完美的意義既不返回任何結果 – user1548769

+0

這是我不得不使用'code' preg_match(「/((\ d {2})\ /(\ d {2})\ /(\ d {4})) /「,$ file_string,$ matches); '代碼' – user1548769

0

默認情況下,正則表達式是貪婪的;他們儘可能匹配。您可以使用不情願的修飾符儘可能少地匹配。另外,你在<之前不需要反斜槓。

preg_match("/bold;\">(.+?)<\/td><td>/i", $file_string, $matches); 
+1

謝謝。我試過這個,但沒有奏效。 – user1548769

+1

「沒有工作」通常不會提供足夠的信息來解決任何問題:) – Joni

+0

當我說它不起作用時,我的意思是當我使用上面提供的代碼進行測試時,沒有結果顯示在屏幕上。修改後,我可以使用preg_match(「/((\ d {2})\ /(\ d {2})\ /(\ d {4}))/」,$ file_string,$ matches );不是說可能還有其他幾種方式來使它工作。再次感謝您花時間提交答案,並對我的回覆模糊不清。 – user1548769