2012-10-26 18 views
0

我創建了一個reg表達式來查找文件名以「安裝」開頭並且之後有6個數字的目錄中的所有文件。reg表達式從特定的序列號開始?

我在找的是一個以「安裝」開頭的文件名列表,後面只有6個數字。舉例來說,現在我有六個文件(測試文件):

installation.php 
installation000001.php 
installation000002.php 
installation000003-sweep.php 
installation000004.php 
installation-sweep.php 

,我用PHP使用其拉動表達/^installation([0-9]{6})/:我只是想拉1,2

installation000001.php 
installation000002.php 
installation000003-sweep.php 
installation000004.php 

和4(不是installation000003-sweep.php)。另外,如何從000002開始只能拉:

installation000002.php 
installation000004.php 

回答

0

如果你只想用數字則.PHP的那些:

/installation([0-9]{6}).php/ 

起步價2結合起來,你可以這樣做:

/installation([0-9]{5}[2-9]).php/ 
+0

我可以用這個工作。但是,一旦序列高於000009,我將不得不使用變量數據。因此,如果我有一個名爲「installation000012」的文件和一個名爲「installation000014」的文件,我可以使用「/^installation([0-9] {4} [ 1-9] {2})。PHP /」。變量數據將是「/^installation([#-9]{#}[#-9]{#}).php/」(所有井號)。我可以從序列號的開頭找出變量數據。謝謝。 – mtlca401

0

您可以使用正/負向前看符號:

/^installation([0-9]{6})(?=\.)/ 
         ^^^^ followed by a period 
/^installation([0-9]{6})(?!-)/ 
         ^^^^ not followed by a dash 

排除第一條記錄最簡單的方法是使用array_splice或在結果數組上使用而不是在模式中使用規則。