2014-10-31 153 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