LINUX.ORG.RU
ФорумTalks

Слава человечеству! Человекочитаемые regexp`ы...


1

1

Некоторое время назад мне надо было для одного наколенного проекта написать парсер и я в очередной раз столкнулся с регулярными выражениями.
Потом в распаршиваемых данных что-то изменилось и надо было переделать регулярки но на этом мой энтузиазм закончился.
Для меня регулярки остались writeonly хренью, которую при изменении проще переписать, чем что-то там править.
Тем более, что мне приходится изучать их заново каждый раз перед использованием. Эта дрянь не держится у меня в голове дольше 2-3 дней.
Мне кажется я такой не один.
А давайте сделаем, пусть и более многословные, но понятные для неподготовленного человека регулярные выражения?
Например надо выколупать из

<a href="example.com">link</a>
домен и название. Пусть это выглядит как-то так:
{
  skip_until("\"");
  cut_out(LITERALS);
  skip_until(">");
  cut_out(LETTERS);
}
Добавить разных skip_while, skip_until и т.п.
А чтобы не изобретать велосипед с нуля просто транслировать этот код к классические регулярки.
Есть тут спецы по регулярным выражениям, которые могут сказать что-то кроме «Не нужно, нас и так всё устраивает»?

★★☆
Ответ на: комментарий от Stahl

Я просто хочу чтобы я понимал что говорю машине.

Эта дрянь не держится у меня в голове дольше 2-3 дней.

Ты мне напомнил одного типа: суппортил я одну небезысвестную проприетарную программу для бэкапа компов. Там была возможность в настройках задать скрипт для исполнения до/после бэкапа (например, чтобы застоппить и потом запустить БД). Предполагалось, что туда будет вписываться путь до батника, либо шелл-скрипта (для линуксовой версии). Так один чел прислал тикет в суппорт, что у него не работают скрипты паника КРОВЬ КИШКИ ВЕРНИТЕ МНЕ ДЕНЬГИ. Скрипт, который он прислал, выглядел примерно так:

BACKUP MY PC TO MY EXTERNAL DRIVE
AFTER THAT SHUTDOWN THE COMPUTER
DELIRIUM ☆☆☆☆☆
()
Последнее исправление: DELIRIUM (всего исправлений: 1)

Для меня регулярки остались writeonly хренью, которую при изменении проще переписать, чем что-то там править.

Если что-то изменится, твою хреновню нужно будет тоже переписывать. Почему нет? Да. А у тебя буков больше. Не нужно.

Tanger ★★★★★
()

Например надо выколупать из

<a href="example.com">link</a>
домен и название.

Как предлагали мне некоторое время назад тут в Development, можно воспользоваться tagsoup, преобразовав кривой html/whatever на входе в xml и просто пройстись по xml-дереву стандартными для этого либами.

Suigintou ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.