Програмне забезпечення для візуального побудови регулярних виразів?


17

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

Відповіді:


9

Як щодо Visual Regexp ?

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


Який wm ви використовуєте?
enzotib

1
Не я, це посилання прямо з домашньої сторінки проекту. Але це схоже на fvwm, який був популярний наприкінці 1990-х: с. Не соромтеся порівнювати щось подібне до цього fvwm.org/screenshots/desktops/Helmuth_Schmelzer-1366x768/… , я не маю уявлення про те, який стан fvwm є сьогодні (але він був дуже стабільним до винайдення kde та gnome).
Йоган

1
Прикраси вікон виходять безпосередньо з Motif, який з тих пір переноситься / копіюється в інших менеджерів вікон. en.wikipedia.org/wiki/Motif_Window_Manager
Арседж


4

Спробуйте txt2regex і подивіться, чи допомагає це. Я ніколи не використовував це серйозно, але це здалося здоровим, коли я спробував це.



2

Не зовсім те, що вимагає ОП - але я вважаю, що це актуально, тому я перехрещу пост Рекомендації для редактора Regex? # 549107 - Запитайте Ubuntu :

Ось моя спроба створення візуального інструменту графічного графічного інтерфейсу під назвою visRegexTester.py:

Він має "попередній перегляд" ("Автоматичне повторне перезавантаження"), якщо ви введете та зміните поле "повторне вираження". Інакше це просто той єдиний файл; є коментар README на початку - ось фрагмент від нього:

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

(ПРОГРАМА --ARGS) ("REGEX") (FILENAME)

... докладніше дивіться. Скріншот:

visRegexTester_01.png


1

Так, text2re.com має бути близьким до того, що ви шукаєте. З огляду на вихідний текст, ви можете генерувати регулярний вираз, який відповідає будь-якому із заданих текстів. Інструмент також генерує код для розміщення мов.

Користувальницький інтерфейс програми для створення регулярних виразів (крок 2 на сторінці) вивчити трохи важко; зауважте, що наведення курсору на будь-який із варіантів пояснює об'єкт, проти якого ви співпадаєте:

користувальницький інтерфейс інструменту регулярних виразів


0

Я не зовсім впевнений, що ви маєте на увазі під "візуально створити код" (ви маєте на увазі інструмент GUI?). Якщо ви схожі на мене, я вважаю, що неможливо працювати зі складними регулярними виразами, якщо я не викладу їх структуровано, так що я можу отримати краще візуальне уявлення про логіку.

Дійсно, sedце просто сценарна мова, і її можна викласти, як і інші мови, тобто. з однією командою на рядок. Ось типовий приклад того, що я маю на увазі: регулярний вираз із зображенням структурованого макета .

Дуже зручна функція sed є його команда налагодженняl , яка є простим дампами рядків, що показує простір шаблону із вбудованими новими рядками, показаними як \nтощо.

Проблема з sedне лише регулярними виразами. Він має прикольний набір криптовалют для команд циклу та перевірки стану; на це потрібен час, щоб звикнути ... Найкращий інструмент, який я коли-небудь знайшов, щоб допомогти мені мати справу з sedдосить просто: я детально прочитав посібник . Від цього це лише процес починання з малого та отримання прості речі, що працюють; потім створюйте більше речей для отримання досвіду ..

Регекс Perl має деякі корисні функції, які допомагають у складанні складних моделей; напр. можливість ігнорувати пробіли у вашому вираженні .. (Як виклик, і для фактору екскрейнс» , я написав sedсинтаксичний аналіз, щоб проаналізувати свій sedкод, щоб дозволити такі пробіли ... PS. Мені це зараз не потрібно; через досвід :) Насправді просто складання команд, по одному на рядок, майже так само добре, як і функція perl.

Найкращий інструмент, який допоможе вам: досвід . напр. Вирішення питань щодо регулярного вираження на цьому веб-сайті - це чудовий спосіб отримати цей досвід ... Я відчуваю, що інструменти графічного інтерфейсу не дуже допомагають, оскільки вони гальмують цей досвід ...

Підсумовуючи, найкращі помічники - це досвід та структурована компонування , а також прочитайте посібник (докладно).

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


Я думаю, що це не зашкодить, якщо у вас є інструмент для легкого тестування та експерименту. (emacs re-builder)
favadi

1
Я використовував, emacs re-builderі це зовсім не допомогло мені ... не минулий день 1 ... Все, що мені показали, - це те, що для emacsцього потрібен додатковий нахил або два, через те, як Emacs оцінює речі ... Ви можете зробити той же тест, оцінивши ваш регулярний вираз через C-x C-e.. Він не пише вираз для вас; вам все одно потрібно це написати ... І тоді з'являється emacsсистема написання регексу за допомогою описових слів .. (Я думав, що багатословна / англійська система схожа на COBOL .. але навіть COBOL не зовсім мертвий, все ж) .. і з повагою, вам все одно потрібно це написати.
Пітер.O
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.