Бесплатный инструмент сравнения, который настраивается?

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

Мол, смотрите две строки:

this.Visible = true;
Visible = true;

И могу ли я написать выражение так, чтобы, если разница строк точно this игнорируйте разницу.

Как мне конкретно это сделать?

Я приведу еще один пример. подобно System.Exception а также Exception оба одинаковы для меня, я не хочу показывать их в diff.

8 ответов

Решение

Я не смог найти эту функцию ни в одном программном обеспечении, хотя Beyond Compare и Araxis имеют эту функцию.

Из вики WinMerge кажется, что они не будут поддерживать плагины или подобные функции в будущем. Очень плохо.

Вы можете сделать это с KDiff3. Смотрите раздел документации по командам препроцессора.

Обновление: я вижу, что у вас есть дополнительный запрос, который, кажется, нуждается в программе семантического сравнения. Посмотрите Semantic Diff Utilities для некоторых предложений.

Лучшее программное обеспечение для сравнения источников, которое я когда-либо использовал, было Beyond Compare. С его помощью вы можете делать именно то, что просили: вводить регулярное выражение, которое говорит программе игнорировать определенные различия. Тем не менее, это не бесплатно.

Если вам действительно нужно бесплатное приложение, вы можете попробовать WinMerge. Хотя я не очень люблю интерфейс.

DiffMerge от SourceGear поддерживает это. Вам нужно создать набор правил, соответствующий файлам, которые вы объединяете, или отредактировать набор правил по умолчанию. В наборе правил добавьте шаблоны в свойство Lines to Omit. См. Свойство Ommitted Lines в онлайн-справке для получения дополнительной информации.

Попробуйте GNU diffutils. Если вы работаете в Windows, вы можете распространять GNU diff с Cygwin с сайта www.cygwin.com.

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

В Python есть модуль diff для написания инструментов, похожих на diff, которые будут обрабатывать все сложности алгоритма сравнения для вас. У них есть пример сценария, который будет выполнять различие файлов в стандартном формате diff/ patch Unix или параллельный HTML в 60 строк кода.

Различия в модуле позволяют вам определять "ненужные" фильтры для предварительной обработки строк, чтобы удалить части, которые вы не хотите включать в diff. Это функции Python, поэтому вы не ограничены совпадениями с регулярными выражениями.

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

Notepad++ имеет плагин сравнения, который довольно настраивается.

Если вы знаете, как писать JavaScript, вы можете вставить соответствующее регулярное выражение в часть минимизации инструмента Pretty Diff. Инструмент полностью бесплатный, а код полностью открыт со встроенной документацией.

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

Другие вопросы по тегам