reg表达式从特定的序列号开始?

时间:2012-10-26 01:20:41

标签: php regex sequence

我创建了一个reg表达式来查找文件名以“installation”开头的目录中的所有文件,之后有6个数字。

我要做的是获取一个以“ installation ”开头的文件名列表,后面只有6个数字。例如,现在我有六个文件(测试文件):

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

我使用php的表达式是/^installation([0-9]{6})/,它提取:

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

我只想拉1,2和4(不是installation000003-sweep.php)。另外,我怎样才能从000002开始只能拉动:

installation000002.php
installation000004.php

2 个答案:

答案 0 :(得分:0)

如果你只想要那些数字,那么.php:

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

将它与从2开始你可以做到:

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

答案 1 :(得分:0)

您可以使用正面/负面前瞻:

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

排除第一条记录的最简单方法是在结果数组中使用array_splicearray_shift(),而不是在模式中使用规则。