0

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

我要做的是获取以“安装”开头的文件名列表,后面只有 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(不是安装000003-sweep.php)。另外,我怎样才能从只会拉的 000002 开始:

installation000002.php
installation000004.php

?

4

2 回答 2

0

如果您只想要带有数字的那些,那么 .php:

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

将它与从 2 开始相结合,您可以这样做:

/installation([0-9]{5}[2-9]).php/
于 2012-10-26T01:41:23.457 回答
0

您可以使用正/负前瞻:

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

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

于 2012-10-26T01:47:22.997 回答