Алгоритм получения регулярного выражения - PullRequest
3 голосов
/ 07 октября 2008

Что-то вроде этого у меня в голове: Я вставил одну или несколько строк, и алгоритм показывает мне соответствующее регулярное выражение.

Есть ли какой-нибудь "легкий" способ сделать это, или что-то подобное уже существует?

Edit: Да, я пытаюсь найти способ генерировать регулярные выражения.

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

  • Я положил 123456, регулярное выражение должно быть \ d {6}
  • Я положил в nb-123456, регулярное выражение должно быть \ w {2} - \ d {6}

Ответы [ 7 ]

3 голосов
/ 07 октября 2008

Если у вас есть Emacs, вы можете использовать regexp-opt. Например, оценка:

(regexp-opt (list "my" "list" "of" "some" "strings" "to" "search"))

возвращает

"list\\|my\\|of\\|s\\(?:earch\\|ome\\|trings\\)\\|to"
2 голосов
/ 07 октября 2008

Perl может сделать это: http://www.hakank.org/makeregex/

Как и ruby: http://www.toolbox -mag.de / data / makeregex.html

Примечание: не очень идеальное решение.

И есть инструмент CLI: txt2regex .

Был txt2re, когда-то давно ...

2 голосов
/ 07 октября 2008

Похоже, вы хотите, чтобы алгоритм генерировал обычную грамматику на основе некоторых примеров. Во многих случаях существует множество возможных грамматик для данного набора примеров - даже могут быть бесконечные возможные грамматики. Конечно, возможности могут быть ограничены вторым набором обязательных non -совпадений, которые могут ограничить его до нулевых возможностей, если несовпадающие строки слишком включительны.

txt2re делает что-то подобное.

1 голос
/ 07 октября 2008

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

http://weblogs.asp.net/rosherove/pages/tools-and-frameworks-by-roy-osherove.aspx

1 голос
/ 07 октября 2008

Как насчет следующего (соответствует каждой строке)?

. *

0 голосов
/ 24 октября 2008

Посмотрите на txt2re .

Этот сайт содержит форму, которая берет образец строки и генерирует шаблон регулярного выражения, который может соответствовать данной строке.

Затем он генерирует соответствующий скрипт для следующих языков: Perl, PHP, Python, Java, Javascript, ColdFusion, C, C ++ Ruby, VB, VBScript, J # .net, C # .net, C ++. Net, VB.net.

0 голосов
/ 07 октября 2008

если ваши входные строки не являются случайными строками и основаны на некоторых правилах, с помощью синтаксического анализатора (то есть jflex) вы можете создать генератор регулярных выражений, который будет генерировать регулярное выражение w.r.t. данные строки.

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