Программное обеспечение для визуального построения регулярных выражений?

17

Мне часто приходится создавать регулярные выражения для использования в сценариях (в основном при использовании в них sed), однако, я нахожу, что иногда регулярные выражения становятся очень сложными и трудными для понимания и редактирования. Существует ли какое-либо программное обеспечение, позволяющее визуально создавать код для регулярных выражений, который я затем могу скопировать и вставить в скрипт?

Деревня
источник

Ответы:

9

Как насчет Visual Regexp ?

http://laurent.riesterer.free.fr/regexp/screenshot2.png

Johan
источник
Какой WM вы используете?
энзотиб
1
Не я, это ссылка прямо с домашней страницы проекта. Но похоже, что fvwm был популярен в конце 1990-х годов. Не стесняйтесь сравнивать с чем-то вроде этого fvwm.org/screenshots/desktops/Helmuth_Schmelzer-1366x768/… я понятия не имею, что такое состояние fvwm сегодня (но раньше оно было очень стабильным до того, как были изобретены kde и gnome).
Йохан
1
Оформление окон прямо из Motif, которое с тех пор было перенесено / скопировано в другие оконные менеджеры. en.wikipedia.org/wiki/Motif_Window_Manager
Arcege
4

Попробуйте txt2regex и посмотрите, поможет ли это. Я никогда не использовал это всерьез, но это было круто, когда я попробовал.

jw013
источник
2

Не совсем то, о чем просит OP - но я думаю, что это уместно, поэтому я буду пересекать Рекомендацию для редактора Regex? # 549107 - Спросите Ubuntu :

Вот моя попытка использовать графический инструмент для визуальных регулярных выражений visRegexTester.py:

Он имеет «предварительный просмотр в реальном времени» («Auto rerun»), если вы вводите и изменяете поле «regex». В противном случае это просто один файл; в начале есть комментарий README - вот фрагмент из него:

visRegexTester - это небольшое приложение с графическим интерфейсом Python / Tkinter для написания регулярных выражений; протестировано с Python 2.7 и 3.2. На самом деле, это всего лишь интерфейс для других программ командной строки: она использует тот факт , что много программ Unix / GNU / Linux используется в качестве регулярных выражений процессоров в терминале (например grep, sed, perl), имеет сходный синтаксис командной строки в три части:

(PROGRAM --ARGS) («РЕГЭКС») (FILENAME)

... посмотрите остальное за подробностями. Скриншот:

visRegexTester_01.png

sdaau
источник
1

Да, text2re.com должен быть близок к тому, что вы ищете. По заданному исходному тексту вы можете создать регулярное выражение, соответствующее любому заданному тексту. Инструмент также генерирует код для небольшого количества языков.

Пользовательский интерфейс построителя регулярных выражений (шаг 2 на странице) немного сложен для изучения; обратите внимание, что при наведении курсора на любой из параметров объясняется объект, с которым вы подходите:

Пользовательский интерфейс regex

tcdyl
источник
0

Я не совсем уверен, что вы подразумеваете под «визуальным созданием кода» (вы имеете в виду инструмент с графическим интерфейсом?). Если вы похожи на меня, я считаю , что невозможно работать с комплексными регулярными выражениями, если я не выложите их в структурированной форме, так что я могу получить более визуальное представление логики.

На самом деле, sedэто просто язык сценариев, и он может быть выложен как другие языки, т.е. с одной командой на строку. Вот типичный пример того, что я имею в виду: регулярное выражение sed, показывающее структурированный макет .

Очень удобной особенностью sedявляется команда отладкиl , которая представляет собой простой дамп строки, показывающий пространство шаблона со встроенными символами новой строки, показанными как \nи т. Д.

Проблема sedне только в регулярных выражениях. У этого есть напуганный загадочный набор команд для зацикливания и проверки состояния; это требует времени, чтобы привыкнуть ... Лучший инструмент, который я когда-либо нашел, чтобы помочь мне справиться с этим sed, довольно прост: я прочитал руководство подробно ... С этого момента , это всего лишь процесс начала с малого и получения простые вещи работают; затем построить более крупные вещи, чтобы получить опыт ..

В Perl regex есть несколько полезных функций, помогающих в построении сложных шаблонов; например. способность игнорировать пробелы в вашем выражении .. (В качестве проблемы и для фактора expereince я написал sedсинтаксический анализатор для анализа моего sedкода, чтобы разрешить такие пробелы ... PS. Мне это сейчас не нужно; из-за опыта :) На самом деле простое размещение команд, по одной на строку, почти так же хорошо, как и функция perl.

Лучший инструмент, чтобы помочь вам это: опыт . например. Решение проблемы , регулярные выражение вопросов на этом сайте , это отличный способ , чтобы получить этот опыт ... Я чувствую , что GUI инструменты не очень помогает, потому что они подавляют опыт ...

Таким образом, лучшие вспомогательные инструменты - это опыт и структурированный макет , а также прочитайте руководство (подробно).

Я часто использовал слово «expereince» .. под этим я подразумеваю, что sedключевым моментом является подготовка регулярных выражений (и в случае любой логики циклического выполнения и т. Д.). Тип "Regex-Builder" инструменты; не пишите регулярное выражение для вас; они только проверяют это, и они, конечно , не будут обрабатывать программную логику sed , потому что это не регулярное выражение ... (и вы специально выделили sed) ... Подсветка синтаксиса, которую они могут предложить, мало что для меня делает , Хотя редактор с хорошим совпадением скобок очень удобен (я использую emacs) ..

Peter.O
источник
Я думаю, это не повредит, если у вас есть инструмент для простого тестирования и экспериментов. (emacs re-builder)
favadi
1
Я использовал, emacs re-builderи это мне совсем не помогло ... не за день 1 ... Все, что он мне показал, это то, что в emacsнем нужна дополнительная обратная косая черта или две, из-за того, как emacs оценивает вещи ... Вы можете сделать тот же тест, оценивая ваше регулярное выражение через C-x C-e... Он не пишет выражение для вас; Вы все еще должны написать это ... И затем есть emacsсистема написания регулярных выражений с использованием описательных слов ... (Я думал, что многословная / похожая на английский система вымерла с COBOL .. но даже COBOL не полностью мертв, пока что) .. и уважает, тебе все равно нужно это написать.
Peter.O