Архив

Публикации с меткой ‘regexp’

Выражения должны быть регулярными

Как и утренний стул. Так по крайней мере заявляет мой доктор.

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

А учитывая то что в последние пару недель я снова пиратствую, можете ожидать от меня интересных постов по теме.

Кстати по теме, ловлю себя на мысли что чаще всего использую группы символов с исключением, вида [^...]. Т.е. группа символов, включающая все символы кроме тех что указаны вместо троеточия.

Например вот это

/блаблабла ([^"]+) блаблабла/

в вольном переводе означает:

Боец, собери все отсюда и до забора первой кавычки и принеси сюда.

I, Parser. Как я пиратствовал. Я, Парсер

На днях увлеченно вспоминал опыт годичной давности по парсингу сайтов разработке информационных баз в сети Интернет. В общем пиратствовал.

На этот раз все прошло существенно быстрее и комфортнее.

Работа закончена и теперь я с чистой совестью и полными карманами, отдаю в хорошие руки набор пирата. Почти новый.

Набор включает:
1. Человека с прямыми руками и со знанием PHP и регулярных выражений.
2. Сервер или локальную машина с апачем+пхп+mysql, подключенную к безлимитному каналу.
3. Скрипт загрузки индекса необходимых страниц и скрипт загрузки самих страниц.
4. Парсер, вытаскивающий нужные данные из выкачанной кучи мусора.
5. Красивый шаблон для оформления результатов. Excel, xml, csv или html.
6. Ну и какой же пират, без попугая-матершинника и черной повязки на глаз.

В выборе железа – предпочтительнее локальная машина или выделенный сервер. У шаред хостингов – масса ограничений. Особенно у дешевых. Вешать это все дело на крон – занятие крайне неблагодарное. Проверено.

При загрузке данных все решается просто – через curl. Пока админы пьют пиво – качаем все в один поток, с одного IP, без refferer, с простым User agent. А пока они допьют – все ихнее золотишко уже у нас. Хе-хе.

Пункты 3 и 4 комбинируются по ситуации. Все скрипты можно объединить в один большой цикл с одновременной выкачкой-парсингом. Если база маленькая то лучше так и поступить.

Самое трудоемкое во всем этом – написать регулярное выражение и исправить в нем все ошибки. Дальше – дело техники.

И… соблюдайте копирайт! :)

Разбирая regexp

30 Май 2008

Меняю журнал кроссвордов и пять коробок пазлов на сборник регулярных выражений.

Разбивайте свои регулярные выражения на части.