простой в использовании инструмент Regex Creator? - PullRequest
21 голосов
/ 05 февраля 2009

Я попробовал некоторые инструменты регулярных выражений, такие как Regulator, Regulazy & RegexBuddy. Они не делают то, что я хочу, и они ожидают, что пользователь будет знать регулярные выражения.

Я хочу инструмент для чайников. Вы говорите инструменту, что мне нужно регулярное выражение для чего-то вроде «сопоставить все, что заканчивается словом« да », и оно содержит хотя бы одно вхождение фразы« / test / »», и оно создает регулярное выражение для вас.

Таким образом, я либо ввожу свой запрос на простом английском или полу-простом английском языке, либо в инструменте есть все виды готовых вариантов выбора, и я выбираю между ними, чтобы создать то, что я хочу ad hoc.

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

Ответы [ 13 ]

14 голосов
/ 05 февраля 2009

Я был фанатом приложения Expresso от Ultrapico. Есть раздел конструктора, который помогает вам (немного) в построении фрагментов выражения. Что еще более важно, он будет объяснять существующее выражение (либо ваше собственное, либо из встроенной библиотеки выражений) раздел за разделом.

Также имеется раздел тестирования и замены для просмотра и проверки ваших выражений. Наконец, он сгенерирует выражение, отформатированное для C #, C ++ или VB.NET, чтобы вы точно знали, как вставить выражение в ваш проект.

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

Этот инструмент был показан в MSDN Webcast Зейном Набулси и, возможно, стоит посмотреть. Надеюсь, это поможет, и удачи вам в путешествии по Regex!

9 голосов
/ 05 февраля 2009

Лично мне очень нравится Expresso http://www.ultrapico.com/Expresso.htm Интерфейс довольно чистый - позволяет вам проверять функциональность поиска и замены, имеет хорошую помощь, плюс он генерирует выражения C # для вас, если хотите.

9 голосов
/ 05 февраля 2009

txt2re кажется действительно хорошим. Я ввел в строку «Эта строка содержит тест и оканчивается на да», щелкнул test и yes, и получил регулярное выражение . Он не фокусируется на обучении построению регулярных выражений, но показывает код perl для анализа того, что вам нужно.

Настоящей силой этого инструмента является его способность распознавать такие вещи, как даты, URL-адреса и теги. Однако, похоже, что пробелы не работают слишком хорошо, и, похоже, не справляются с какими-либо повторениями.

3 голосов
/ 05 февраля 2009

Для меня лучшим инструментом является RegexBuilder это открытый исходный код, написанный на C #, так что вы можете настроить его так, как вам хочется;)

Наслаждайтесь. ;)

2 голосов
/ 01 ноября 2013

Мне больше всего нравится мой собственный RegEx Builder: http://www.linuxintro.org/regex

2 голосов
/ 05 июня 2012

Для веб-интерфейса (только одна строка): http://txt2re.com/

Для работы в автономном режиме (возможен полный текстовый файл): Expresso

1 голос
/ 29 сентября 2011

Попробуйте RegExr инструмент на основе Flash

1 голос
/ 05 февраля 2009

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

В любом случае, вот еще один бесплатный, который мне очень нравится. Он называется Конструктор регулярных выражений Rad Software . Надеюсь, это поможет.

1 голос
/ 05 февраля 2009

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

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

Вместо этого:

const string findGamesPattern = 
@"<div\s*class=""game""\s*id=""(?<gameID>\d+)-game""(?<content>.*?)<!--gameStatus\s*=\s*(?<gameState>\d+)-->";

Вы бы, используя ReadableRex:

Pattern findGamesPattern = Pattern.With.Literal(@"<div")
    .WhiteSpace.Repeat.ZeroOrMore

    .Literal(@"class=""game""").WhiteSpace.Repeat.ZeroOrMore.Literal(@"id=""")

    .NamedGroup("gameId", Pattern.With.Digit.Repeat.OneOrMore)

    .Literal(@"-game""")

    .NamedGroup("content", Pattern.With.Anything.Repeat.Lazy.ZeroOrMore)

    .Literal(@"<!--gameStatus")

    .WhiteSpace.Repeat.ZeroOrMore.Literal("=").WhiteSpace.Repeat.ZeroOrMore

    .NamedGroup("gameState", Pattern.With.Digit.Repeat.OneOrMore)

    .Literal("-->");
0 голосов
/ 06 августа 2014

Интуитивно понятный Анализатор регулярных выражений и Композитор * Класс 1002 * (для PHP , Узел / JS и Python ), regex composer живой пример тут

RegexAnalyser github хранилище

ps я автор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...