Предоставление подсказок для непревзойденных регулярных выражений
Кто-нибудь (сталкивался / работал над) инструментом, дающим подсказки о непревзойденных регулярных выражениях с предоставленным грамматиком? Т.е. представьте, что часть регулярного выражения сопоставлена с некоторым токеном, но последний не выполнен:
(?P<name>[a-zA-Z])-(?P<number>\d+)_blah
Допустим, нам удалось найти имя, но перед "_" (например, "foo-123Z_blah") или "_blah" не было совпадения (например, "foo-123_Zblah").
Было бы здорово, если бы пользователь мог получить подсказку, что пошло не так в длинном регулярном выражении, и, возможно, внести некоторые исправления и т. Д.
Я помню, что читал, что Antlr был довольно хорош в обращении своей процедуры синтаксического анализа, чтобы предоставлять подсказки для неправильных операторов языка в соответствии с предоставленным определением грамматики. Есть ли что-нибудь легковесное, предпочтительно в Python, что-то подобное?
Спасибо!
1 ответ
Вы должны проверить http://www.regexbuddy.com/ для отладки ваших регулярных выражений. Это что-то вроде IDE для регулярных выражений и имеет полную или общую библиотеку регулярных выражений, справку в реальном времени по составлению регулярных выражений, а также инструменты тестирования / отладки.
К сожалению, это не бесплатно, но стоит небольшого количества, которое они взимают. Инструмент отладки довольно хорош, я уверен, что он вам поможет. Он показывает, какие компоненты соответствуют строке, когда происходит возврат, какие символы и т. Д.
Это отличное программное обеспечение, очень рекомендуется!