PHP - preg_match_all - iCalendar - REGEX - PullRequest
0 голосов
/ 26 апреля 2010

Мне нужна помощь в создании регулярного выражения для помещения всех значений в массив!

при условии, что у нас есть огромный файл, полный этих файлов:

Классический iCalendar Стиль:

поэтому мы знаем, что каждый сегмент начинается с BEGIN:VEVENT и заканчивается с END:VEVENT

...
END:VEVENT 

BEGIN:VEVENT
UID:e3cafdf3-c5c7-427e-b8c3-653015e9321a
SUMMARY:Some Text Here
DESCRIPTION:Some Text Here\n555-555-555
ORGANIZER;CN=Some/Text/Here
DTSTART;TZID="Some/Text/Here":20100802T190000
DTEND;TZID="Some/Text/Here":20100802T193000
STATUS:CONFIRMED
CLASS:PUBLIC
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
TRANSP:OPAQUE
X-MICROSOFT-DISALLOW-COUNTER:TRUE
DTSTAMP:20100423T021222Z
SEQUENCE:1
END:VEVENT 

BEGIN:VEVENT
...

с использованием preg_match_all , который, я думаю, является лучшим выбором для этого, какое регулярное выражение может хранить все эти значения в массиве?

PS: между сегментами нет разрыва строки, это только для примера!

РЕДАКТИРОВАНИЕ: просто для пояснения я хочу добиться такого результата:

        Array
        (
            [0] => Array
                (
                [0] => '
UID:e3cafdf3-c5c7-427e-b8c3-653015e9321a
SUMMARY:Some Text Here
DESCRIPTION:Some Text Here\n555-555-555
ORGANIZER;CN=Some/Text/Here
DTSTART;TZID="Some/Text/Here":20100802T190000
DTEND;TZID="Some/Text/Here":20100802T193000
STATUS:CONFIRMED
CLASS:PUBLIC
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
TRANSP:OPAQUE
X-MICROSOFT-DISALLOW-COUNTER:TRUE
DTSTAMP:20100423T021222Z
SEQUENCE:1
                   '
                )

            [1] => Array
                (

...
                )
    ...

        )

Спасибо всем за время!

С уважением Лука Филосфи

1 Ответ

1 голос
/ 26 апреля 2010

Зачем использовать регулярные выражения?

Это звучит как работа для explode () и небольшой очистки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...