Страница 1 из 1

анализировать строку по regexp

Добавлено: 2010-04-05 11:22:58
Гость
есть скриптик анализа файла.
Анализируемая строка:

Код: Выделить всё

Apr  5 10:01:01 mail postfix/smtpd[48978]: NOQUEUE: reject: RCPT from unknown[10.0.33.99]: 554 5.7.1 <rt.su>: Helo command rejected: Your server configured incorrectly; from=<> to=<root@rt.su> proto=ESMTP helo=<rt.su>
Регулярное выражение на пхп:

Код: Выделить всё

if ( preg_match('/(.*) [A-Za-z0-9-_]+ postfix\/smtpd\[[0-9]+\]: NOQUEUE: reject: (.*)/i', $buffer, $match) ){//3
$buffer - анализируемая строка
Структура массива $match получается следующая:

Код: Выделить всё

Array
(
    [0] => Apr  5 11:31:00 mail postfix/smtpd[49591]: NOQUEUE: reject: RCPT from unknown[10.0.33.99]: 554 5.7.1 <rt.su>: Helo command rejected: Your server configured incorrectly; from=<> to=<root@rt.su> proto=ESMTP helo=<rt.su>
    [1] => Apr  5 11:31:00
    [2] => RCPT from unknown[10.0.33.99]: 554 5.7.1 <rt.su>: Helo command rejected: Your server configured incorrectly; from=<> to=<root@rt.su> proto=ESMTP helo=<rt.su>

Хочу дополнительно разбить элемент массива $match[1] на подэлементы (отдельно месяц, день, час).
Написал нечто следующее:

Код: Выделить всё

if ( preg_match('/(\w\w\w)\s+(\d)\s(\d\d:\d\d:\d\d) mail postfix\/smtpd\[[0-9]+\]: NOQUEUE: reject: (.*)/i', $buffer, $match) )
но при проверке скрипта, массив $match пуст. Подскажите, где надо подправить?

Re: анализировать строку по regexp

Добавлено: 2010-04-05 11:47:56
Гость
вопрос снимается. исправил