Отправляет email-рассылки с помощью сервиса Sendsay

Perl, Bash, PHP.

За 2008-01-29

Re: Регулярные выражения (RegExp'ы): нужна консультация и помощь

Послал скрипт на личный ящик

Dmitry V. Slavnikov пишет:
> Добрый день, друзья!
>
> Подскажите, есть в данном комьюнити специалисты по регулярным
> выражениям?.. Может кто-нибудь помочь консультативной или практической
> помощью?..
>
> В качестве благодарности буду рад отключить Вам рекламу Subscribe.ru
> сроком на год :) Стоимость услуги у самого Subscribe.ru = 300 p.
>
>
> Итак, нужно силами регулярных выражений в PHP (а насколько я знаю,
> PHP поддерживает и синтаксис регулярных выражений Perl'a) реализовать
> следующее:
>
>
> есть некий текст, состоящий из 3-х частей:
> шапки, тела, подписи (или, как говорят, хедера, боди и футера).
> Необходимо из текста убрать хедер и футер (я предполагаю делать
> это с помощью функции eregi_replace(); или иной (может подскажете).
>
> что известно, известно о части текста под названием "шапка"
> (хедер):
>
> во-первых, текст начинается именно с нее,
> во-вторых, она занимает несколько строк, причем неизвестно сколько
> (т.е. это может быть 3 строки или больше),
> в-третьих, она может содержать любые символы (текст, числа и т.п.),
> но заканчивается она всегда следующим образом: указан е-мэйл, часть
> у которого постоянная (всегда) и выглядит так:
> -lala@a*****.by
> после этого е-мэйла может быть от нуля до нескольких пробелов, перевод
> строки и длинная строка, составленная из знаков равно
> т.е. типа: (точно не задано,
> сколько их, т.е. число может менять, но в любом случае больше 30
>
> удалить нужно будет всю шапку, включая ту строку, которая состоит из
> этих знаков равно... на них просто ориентироваться нельзя, т.к. иногда
> в середине шапки текста может присутствовать такая же линия из знаков
> равно, но сочетание типа концовка е-мэйла пробелы (если есть) переход
> строки и длинная линия из знаков равно является явным окончанием шапки.
>
> Пример шапки:
>
> . ля траляля ля .
> .................... [ красивый текст ] ..............................
> . 222 333 44 - числа (!) <= знаки разные
> > опять текст и числа 222 снова текст и числа 333 и еще немного текста -
> числе 22-33-2008 опять текст и числа префикс.текст-lala@a*****.by
> >
>
> вот это был пример шапки - несколько строк, мы не знаем, что в ней
> (может быть разное), но четко всегда она заканчивается одним и тем же.
>
>
> теперь по поводу футера (или подвала)...
>
> что известно про него - им заканчивается текст
> количество строк в нем четко не определено, может изменяться, но зато
> четко известно, с чего начинается подвал, а начинается он вот с такой
> последовательности символов: тире звездочка тире (несколько - от 4)
>
> -ж>
> где после звездочки минимум идет четыре знака тира (но может идти
> больше) причем явно известно, что на этой строчке кроме пробелов
> (возможных, т.е. пробелы от 0 до не знаю скольки) ничего нет, это
> знак начала футера
>
> обращаю Ваше внимание, что ниже последовательность знаков начала
> футера может еще раз повторяться, т.е. например так:
>
> -ж> футер шмутер тра ля ля
> и еще какая-то строчка с разными знаками ! . " @ и т.п.
> -ж> и снова какие-то строчки непонятной природы...
>
>
> Вот. Надеюсь, что объяснил достаточно подробно.
>
> Вот пример текста, над которым можно эксперементировать:
> http://soros.cima.ru/temp/regexp-example.txt
>
> и вот, что после удаления хедера и футера должно остаться:
> http://soros.cima.ru/temp/regexp-result.txt
>
> --
> 28.01.2008 - 11:01
>
> С уважением, Славников Дмитрий
> http://subscribe.ru/author/9810
> E-mail: slavnikov***@c*****.by
> Mobile: (+375 29) 629-30-43
> ICQ: 115041944
>

   Shrub Alexey 2008-01-29 21:26:37 (#721477)

Регулярные выражения (RegExp'ы): нужна консультация и помощь

Добрый день, друзья!

Подскажите, есть в данном комьюнити специалисты по регулярным
выражениям?.. Может кто-нибудь помочь консультативной или практической
помощью?..

В качестве благодарности буду рад отключить Вам рекламу Subscribe.ru
сроком на год :) Стоимость услуги у самого Subscribe.ru = 300 p.

Итак, нужно силами регулярных выражений в PHP (а насколько я знаю,
PHP поддерживает и синтаксис регулярных выражений Perl'a) реализовать
следующее:

есть некий текст, состоящий из 3-х частей:
шапки, тела, подписи (или, как говорят, хедера, боди и футера).
Необходимо из текста убрать хедер и футер (я предполагаю делать
это с помощью функции eregi_replace(); или иной (может подскажете).

что известно, известно о части текста под названием "шапка"
(хедер):

во-первых, текст начинается именно с нее,
во-вторых, она занимает несколько строк, причем неизвестно сколько
(т.е. это может быть 3 строки или больше),
в-третьих, она может содержать любые символы (текст, числа и т.п.),
но заканчивается она всегда следующим образом: указан е-мэйл, часть
у которого постоянная (всегда) и выглядит так:
-lala@a*****.by
после этого е-мэйла может быть от нуля до нескольких пробелов, перевод
строки и длинная строка, составленная из знаков равно
т.е. типа: (точно не задано,
сколько их, т.е. число может менять, но в любом случае больше 30

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

Пример шапки:

. ля траляля ля .
.................... [ красивый текст ] ..............................
. 222 333 44 - числа (!) <= знаки разные
опять текст и числа 222 снова текст и числа 333 и еще немного текста -
числе 22-33-2008 опять текст и числа префикс.текст-lala@a*****.by
вот это был пример шапки - несколько строк, мы не знаем, что в ней
(может быть разное), но четко всегда она заканчивается одним и тем же.

теперь по поводу футера (или подвала)...

что известно про него - им заканчивается текст
количество строк в нем четко не определено, может изменяться, но зато
четко известно, с чего начинается подвал, а начинается он вот с такой
последовательности символов: тире звездочка тире (несколько - от 4)

-жгде после звездочки минимум идет четыре знака тира (но может идти
больше) причем явно известно, что на этой строчке кроме пробелов
(возможных, т.е. пробелы от 0 до не знаю скольки) ничего нет, это
знак начала футера

обращаю Ваше внимание, что ниже последовательность знаков начала
футера может еще раз повторяться, т.е. например так:

-жфутер шмутер тра ля ля
и еще какая-то строчка с разными знаками ! . " @ и т.п.
-жи снова какие-то строчки непонятной природы...

Вот. Надеюсь, что объяснил достаточно подробно.

Вот пример текста, над которым можно эксперементировать:
http://soros.cima.ru/temp/regexp-example.txt

и вот, что после удаления хедера и футера должно остаться:
http://soros.cima.ru/temp/regexp-result.txt

--
28.01.2008 - 11:01

С уважением, Славников Дмитрий
http://subscribe.ru/author/9810
E-mail: slavnikov***@c*****.by
Mobile: (+375 29) 629-30-43
ICQ: 115041944

   "Dmitry V. Slavnikov" 2008-01-29 10:21:18 (#721321)