2014-10-31 136 views
0

似乎很容易,但它不起作用。我有這樣的事情:正則表達式,不能得到它

5224Reportage chez Ben ferme Ayrshire 2000 inc.2009-08-26T00:00:00-04:00En 2001, plutôt que de prendre le chemin de l’expansion, Ben ferme Ayrshire 2000 d’Hébertville au Lac-Saint-Jean a décidé d’ajouter le volet fromagerie à l’entreprise en misant sur la qualité.Revue/PLQ-2009-09/reportage.pdf5144Un deuxième Revue/PLQ-2014-07/production.pdf 

從這個我需要包含數組:

Revue/PLQ-2009-09/reportage.pdf 

Revue/PLQ-2014-07/production.pdf 

我用:

$pdfResult = array(); 

preg_match_all('/^Revue.*pdf$/',$string, $pdfResult); 

不會返回任何...

+0

'^'和'$'意味着匹配目標的字符串(或該字符串內的線)的開始和結束。既然你正在尋找嵌入在一個更大的字符串中的字符串,我會開始刪除這些字符串 – 2014-10-31 15:46:58

回答

1

.*是貪婪默認情況下。您需要通過在*旁邊添加?量詞來使其非貪婪。而且你不需要放置錨點,因爲你想要的字符串不在開始。

preg_match_all('~Revue.*?\.pdf~',$string, $pdfResult); 

DEMO