2013-02-09 89 views
2

Мне просто интересно, есть ли там свободное программное обеспечение, способное эффективно минимизировать регулярные выражения.Программы/Калькуляторы для минимизации регулярных выражений

+2

Зачем нужно «минимизировать» регулярные выражения? – Bergi

+0

StackOverflow не является рекомендательным или местным сайтом. Google и Bing - оба специалиста, которые выполняют поиск вещей и возвращают ссылки на результаты этого поиска. (Поиск программ также неуместен здесь, потому что это не вопрос программирования, это поиск программного продукта, и это будет вопросом, который подходит для [SuperUser] (http://superuser.com).) Голосование закрывается как выключенное тема. –

+2

Поиск программы/алгоритма/подхода к минимизации RegEx лучше всего подходит, чем суперпользователь. Я согласен, что этот вопрос является широким и определенно плохо сформулированным, но не согласен с оценкой его перемещения или что лучше ответить в другом месте. – Matthew

ответ

2

Вы видите, что этот вопрос задают много, но я не видел эффективного нигде. Если вы считаете, что логика требует просто упростить что-то простое, как диапазоны символов в классе символов, - и довольно низкая ценность делать что-то подобное, я думаю, что отсутствие этих вещей начинает иметь смысл.

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

Этот парень написал один в Haskell, но не разделял: http://community.haskell.org/~ndm/resimplify/

(PS: Я вроде соврал - есть один эффективный Regex упрощение инструмента ... Механический турок, который Stack Overflow :)

+0

+1 для механического турка :-) – Bergi

+0

Упрощение можно сделать, и это часто полезно. Я долго работал над инструментом упрощения на предыдущей работе, но, к сожалению, меня больше нет, и у них есть код.= (Основная идея состоит в том, что вы можете упростить части NFA, чтобы превратить их в DFA, которые работают намного эффективнее. Однако вам обычно приходится останавливаться на границах захватной группы. –

2
+0

Nice. Закладка. – Matthew

+2

Не кажется для работы со сложным регулярным выражением - и по комплексу я имею в виду что-то вроде '[^ \ s \ d + \ -.,:;^\ /] + (?: \^\ d + (?: $ | (? = [\ s: ?.?; \ /]))) (: \/[^ \ S \ d + \ -,:;^\ /] + (: \^\ d + (: $ | (= [\ s :; \ /])))) * ' –

 Смежные вопросы

  • Нет связанных вопросов^_^