("Зеркало" сообщения с bayesit-list@nobat.ru)
Лист (bayesit-list@nobat.ru) является первоисточником публикации данного вложенного файла и сопровождающего его текста. При публикации в других местах прошу сохранять упоминание первоисточника.
Я вплотную занялся корректностью файла регулярных выражений для "выборочного" скачивания (selective.txt). Для этого потребовалась утилита, которая обеспечила бы удобную отладку регулярных выражений. Поиск привёл только к программе TestRExp, написанной на Delphi, которая работает с собственной (встроенной) библиотекой регулярных выражений (порт Pcre на Delphi). Однако эта программа имеет ряд существенных недостатков. Во-первых, она иногда "вылетает" на хитрых выражениях. Во-вторых, она немного устарела, и некоторые довольно существенные части спецификации PCRE на ней уже не работают (например, предположения (assertions) выдают ошибку синтаксиса, хотя они должны поддерживаться, а также не работают именованные подвыражения). К тому же сама программа имеет скорее "демонстрационный" характер, и как специализированная утилита может рассматриваться весьма ограниченно.
В результате я написал собственную утилиту для тестирования регулярных выражений, которую вы можете найти во вложении. (также она доступна в виде архива по адресу [ https://www.ritlabs.com/download/bayesit/pcrecheck.rar ], в
этом архиве помимо утилиты находится и сама библиотека PCRE.dll).
Утилита обеспечивает следующую функциональность:
1). Работа непосредственно с pcre.dll (т.е. используется _внешняя_ библиотека, а не встроенная) - а значит, можно тестировать возможности библиотеки, а не утилиты.
2). Проверка синтаксиса выражений непосредственно в процессе их набора.
3). Возможность получить полную информацию о регулярном выражении (всё, что возвращает pcre.dll в функции pcre_fullinfo).
4). Возможность работы с любыми "национальными" текстами за счёт возможности явно указать нужную локаль.
5). Возможность загружать текст выражения и текста для проверки из внешнего файла в форматах .txt, .rtf, .doc (MS Word).
6). Полноценная работа с именованными подшаблонами (что это такое? Например, в выражении "Мама (?P<my_name>мыла) раму" к первому подшаблону можно обращаться как по номеру (1), так и по имени ("my_name")).
7). Возможность подсветки найденных шаблонов другим цветом.
8). Для подшаблонов - отображение списка найденных подшаблонов в отдельном плавающем окне.
9). Размер утилиты (даже вместе с библиотекой PCRE.dll) минимум в 4 раза меньше, чем упомянутой в начале утилиты, написанной на Delphi.
В немного изменённом виде эта утилита войдёт в состав следующей версии bayesit как встроенный отладчик выражений для ч/б списков.