The Regex Coach: Отладка регулярных выражений PCRE

The Regex Coach
The Regex Coach

Таки здравствуй, дорогой читатель.

Вы ведь знаете, что такое регулярные выражения? Нет? Да ладно, отличный инструмент для обработки текста. Причем под текстом подразумевается что угодно — имена файлов, просто большой талмуд, URL-адреса… Что угодно. Впрочем, если вы пришли сюда по запросу отладка регулярных выражений, то вероятно понимаете, о чем речь. Если же нет, то загляните хотя бы вот сюда, и оцените их мощь. Увы, кроме мощи существует ещё и сложность — в написании, и что важнее — отладке регулярок. Скажем, простенькое регулярное выражение типа index\.php\?(.*?)=(.*?)&(.*?)=(.*?)&(.*?)=(.*?)$ — на взгляд новичка представляет собой дебри, в которых чёрт ногу сломит. А это всего лишь разборка строки типа http://www.domain.com/index.php?act=view&type=page&id=333 на переменные (ну, точнее сказать будет — на блоки), и использование их в своих целях.

Представьте теперь, что в выражение посложнее забралась ошибка (а они там появляются, они такие, да). Что делать? Очень хорошо, конечно, просмотреть процесс разборки в динамике, оценить какие участки текста затрагивают те или иные участки регулярного выражения. Но — популярные веб-ориентированные имитаторы-отладчики хотя и позволяют это сделать, но до описываемого приложения им всем далеко. Одна динамическая подсветка блоков текста чего стоит. Вообще, она предоставляет полный функционал по отладке регулярных выражений, здесь и динамическая подсветка разбираемого текста, и дерево разбора, и обозначение ошибок… Так что — это отличный инструмент для работы с PCRE выражениями. Увы, описывать его работу это занятие муторное и неблагодарное, да и описывать особо нечего — если знать язык регулярных выражений и понимать как они работают, работа с программой не будет в тягость — изучать в ней особо нечего — какой, в общем-то, и должна быть идеальная программа — сосредотачивать на решении целевой задачи, не отвлекая лишними возможностями.

Скачать это чудо можно здесь.

Регулярное выражение для проверки email-адреса

Короче сегодня сидел ебался с поиском RegEx — выражения для проверки корректности введённого мыла. После того как потратил 15 минут на поиск в сети, сказал «а ну его на хуй», и поискал в своих старых исходниках. Нашёл. Нате, может кому пригодится :)

// проверка email на корректность
function valid_email($email)
{ 
    return eregi("^[a-zA-Z0-9._-]+@[a-z0-9._-]+.[a-z]{2,4}$", $email);
}