Доброе утро, Вадим!
29.01.2008 Вы написали мне письмо:
mid:20080129120551.7213***@c*****.subscribe
Тема: "Re[5]: Регулярные выражения (RegExp'ы): нужна консультация"
>>> Попросту говоря, в тексте нужно найти фиксированный ИМейл (именно
>>> фиксированный, который вы точно знаете), а за ним через пару-тройку
>>> переводов строки строку "========...=" из неменее чем 30 символов =. И
>>> отступя, еще раз строку >>> Если я это понял правильно, то я бы не стал регуляркой пользоваться.
>>
>> Почему не стали бы?..
> Причин несколько.
> 1. Написание шаблонов - довольно кропотливое занятие, особенно для новичков
> (к коим на 90% принадлежу и я), где одна единственная ошибка приведет к
> долгим ее поискам в шаблоне (точнее, может привести).
> 2. Говорят, что регулярки сильно грузят сервер.
> 3. Ваша задача из тех, где легче обойтись "классическими" приемами - прямой,
> скажем так, обработкой текста, поскольку тот текст, который нужно найти
> имеет достаточно строгий формат. А регулярки используются при менее четких
> критериях.
>>
>>> $s=substr($s,strpos($s,str_repeat('=',30))+30);
>>> while(substr($s,0,1))=='=')$s=substr($s,1);
>>> $s=substr($s,strpos($s,str_repeat('=',30))+30);
>>> while(substr($s,0,1))=='=')$s=substr($s,1);
>>> Теперь в $s у нас тело+футер (т.е. мы отрезали все по вторую двойную
>>> линию).
>>> Конечно эти две строчки можно "прокатить" в цикле for от 1 до 2.
>>> $s=substr($s,0,strpos($s,'-ж----')) - без футера нужная "середка"-)))
>>
>> Почему-то у меня этот код отказываться работать и вообще выскакивае
>> сообщение об ошибке:
>> Parse error: syntax error, unexpected T_IS_EQUAL in
>> /home/cimaruwe/domains/cima.ru/public_html/soros/temp/3.php
>> on line 6
>> это строчка, где находится первый цикл...
>>
> Я просто закрыл круглую скобку не в том месте.
> while(substr($s,0,1)=='=')$s=substr($s,1);
Вадим, спасибо!
Я подкорректировал Ваш код (пару синтаксичеческих очепяток).
Код работает, но не на всех варантах!
Варианты "живые" я выложил здесь (18 файлов):
http://soros.cima.ru/temp/01.txt
...
http://soros.cima.ru/temp/18.txt
Скрипт в некоторых случаях пытается "откусить" лишнюю часть в начале
текстов. В частности, он не справился с файлами с номерами:
04, 05, 06, 07, 08, 09, 10, 11, 12, 14, 15, 16, 17, 18
хуже всего скрипт обошелся с текстом 12, 14, 15, 18
У меня есть работающий на всех "живых" примерах RegExp, который
составила уважаемая Наталья Сысоева.
Если интересно решить эту задачку не регэкспом, то буду рад получить
от Вас очередное письмо с идеями по этому поводу. В любом случае, как
и обещал, отключу Вам субскрайбовскую рекламу на год. На какой е-мэйл
отключать (можно это сообщить в личку).
--
29.01.2008 - 11:23
С уважением, Славников Дмитрий
http://subscribe.ru/author/9810
E-mail: slavnikov***@c*****.by
Mobile: (+375 29) 629-30-43
ICQ: 115041944