Создание движка регулярных выражений - онлайн-ресурсы?

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

Я знаю теорию, лежащую в основе оценки регулярных выражений, и имею достаточное понимание конечных автоматов и т. Д.

Меня интересует, как движок регулярных выражений реализован в программном обеспечении. Поэтому мне было интересно, есть ли какой-нибудь учебник или онлайн-ресурс, который объясняет реализацию механизма регулярных выражений, перевод из регулярных выражений в FSM и так далее. Я не хочу никаких сайтов, которые просто объясняют теорию, стоящую за этим.

Благодарю.

Ответы на вопрос(8)

Для немецких читателей глава 3 "Алгоритмы сопоставления с образцом f & # xFC; r einfache Strings" quot; из & quot;Алгоритмы на секвенсен& Quot; может быть интересно. Автор - профессор д-р Свен Рахманн, Lehrstuhl XI, Fakult® Informatik, TU Dortmund. Все алгоритмы имеют примеры Python.

Решение Вопроса
 30 дек. 2015 г., 18:13
Страницы с регулярными выражениями Расса Кокса великолепны. Я тоже нашел их, когда искал ресурсы, по той же причине, что и ОП. Я использую эти страницы как простое руководство по созданию библиотеки регулярных выражений для C и используюthis blog документировать по пути. Я не обладаю авторитетом в этом вопросе, но другие могут извлечь выгоду из наблюдения за моей борьбой.
 25 сент. 2013 г., 14:09
Сайт, кажется, не работает уже несколько дней.Here ссылка на статью, кэшированную Google.

Я думаю, что статьяКак работают регулярные выражения Марк-Джейсон Доминус отлично. Он нацелен на непрограммистов, но написан очень алгоритмически и поэтому может использоваться для реализации такого движка, особенно если у вас есть опыт компиляции. Я сделал это сам.

В статье также упоминаются более сложные советы и рекомендации, а также содержится информация об ограничениях двигателя.

У меня есть 2 интересные ссылки для механизмов регулярных выражений,

Regular expression matching can be simple Moserware: How .NET Regular Expressions Really Work

В первой главеBeautiful Code (Амазонка, онлайн проектБрайан Керниган рассказывает об элегантном, очень маленьком сопоставителе регулярных выражений, представленном Робом Пайком. Это действительно просто, но Керниган дает семь упражнений, чтобы расширить его, что может быть хорошим введением для вас.

Я опоздал на вечеринку, но нашелэто назначение курса WSU наиболее полезный при представлении реализации движка regex на высоком уровне. Я не знаю C, поэтому было приятно, что материал был представлен в не зависящем от языка формате. Важно отметить, что он отлично объясняет:

Why to use postfix notation What the stack of NFA fragments is The postfix-to-NFA algorithm in pseudocode The NFA data structure

Кроме того, я нашелСтатья профессора полезно в реализацииre2post метод, упомянутый WSU и Cox.

Я бы рекомендовал сначала прочитать статью WSU, а затем статью Russ Cox.

Если вы знакомы с C, вам, вероятно, будет полезно взглянуть на исходный кодPerl-совместимые регулярные выражения.

другая простая и понятная реализация (C, меньше 500 строк)RecursiveRegexpRaptor

Ваш ответ на вопрос