Проблема с регулярным выражением

Cabucha

Guest
Проблема с регулярным выражением

Доброго времени суток.
Бьюсь уже дня 2 с составлением регулярного выражения, возможно кто то подскажет правильное решение, или хотя бы куда двигаться.

Есть следующий массив:

Код:
[1] => drwxrw-rw- 1 root  root     0 Jan  5 11:08 .
[2] => drwxrw-rw- 1 root  root     0 Jan  5 11:08 ..
[3] => drwxrw-rw- 1 root  root     0 Sep 19  2004 Antivirus
[4] => drwxrw-rw- 1 root  root     0 Sep 26  2004 Arch
[5] => drwxrw-rw- 1 root  root     0 Dec 30  2004 Books
[6] => drwxrw-rw- 1 root  root     0 Jan 28 17:47 CD-RW Soft
[7] => drwxrw-rw- 1 root  root     0 Jan 10 00:19 10 Codec
Делаю следующую махинацию:
PHP:
if(preg_match("/^([\-d])[rwxst\-]{9}.* ([0-9]*) [a-zA-Z]+ [0-9: ]*[0-9] (.+)$/i",$dirline,$regs)) { 
           if($regs[1]=="d")    $dirinfo[0] = 1; 
           $dirinfo[1] = $regs[2]; 
           $dirinfo[2] = $regs[3]; 
       }
Так вот, всё идёт хорошо до папки "10 Codec", ибо 10 попадает под шаблон определяющий дату... вот и сижу -- бьюсь. Заранее благодарен если кто нибудь подскажет правильное решение.
 

Demiurg

Guest
первая буква - это директория или файл ? для этого есть [m]is_dir[/m], и вобще надо не разбирать вывод ls а использовать [m]opendir[/m]
 

Фанат

oncle terrible
Команда форума
Cabucha
когда я делаю сложный рег, я делаю его по частям.
сначала - точка звездочка.
потом первый кусочек. потом второй.
и так далее.

Рекомендую и тебе того же
 

vovanium

Новичок
Cabucha
Вот попробуй
PHP:
preg_match("/^([\-d])[rwxst\-]{9}.* (\d+) [a-z]{3}\s+\d+\s+[\d:]+ (.+)$/i", $dirline, $regs)
 
Сверху