Как использовать линейный фильтр winmerge?

Есть много различий, которые меня не интересуют. Например, рассмотрим следующий случай:

ВЛЕВО: XXXXXXXX XXXXXXXXX ПРАВО: XXXXXXXX XXXXXXXXX OPTIOINAL XYZ

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

3 ответа

Я нашел этот пост, потому что я также боролся с WinMerge. Документация по линейному фильтру идёт прямо в RegEx, как и я. Глупый я; ни одно из сделанных мною выражений не выполняло никакой фильтрации. Оказывается, вы просто помещаете строку в общую строку слева и справа, и она работает так, как я хочу.

Например, я сравниваю 2 файла XML для определенных различий. Некоторые строки содержат эти строки:

IntID IntRef

Им предшествует пробел, открытая строка тега и UUID, который является сущностью, вызывающей разницу, которую я хотел бы игнорировать.

Так что я просто добавил два строковых фильтра только с строками и без элементов RegEx. Обработка файла 12M была немного медленной, но я более чем воспользовался тем, что проигнорировал более 1000 обращений, чтобы увидеть 4 различия.

Я думаю, что это то, что вам нужно, с XXXXXXXX XXXXXXXXX слева и справа. Я предполагаю, что данные одинаковы на каждой стороне.

Отличный ответ, KJM! Я также предложил бы использовать разветвление WinMerge 2011 здесь. У него есть хорошая функция тестирования во всплывающем окне фильтра строк. Для вашего конкретного случая ваше регулярное выражение будет выглядеть примерно так:

^(XXXXXXXX\sXXXXXXXXX).*$

или же

^(XXXXXXXX\sXXXXXXXXX)(\sOPTIOINAL\sXYZ)*$

Проверьте здесь для примеров регулярных выражений.

Примеры я просмотрел в документации по файловым фильтрам.

https://manual.winmerge.org/en/Filters.html

Пример 2. Примеры правил фильтрации файлов

Несколько простых правил фильтрации файлов:

      f: \.cpp$ ## Match *.cpp files
f: \.h$ ## Match *.h files
f: ^My ## Match My*.* files
f: Dlg\. ## Match *Dlg.* files
d: \\test$ ## Match test folders
d: ^\\Build$ ## Match Build folders
d: Temp$ ## Match *Temp folders (for example, FirstTemp)
d: Src ## Match *Src* folders

Некоторые правила с более сложными регулярными выражениями:

      f: ^\.#.*$ ## .#filename.version files
f: Dlg\.c(pp)?$ ## *Dlg.c and *Dlg.cpp files
f: ^I.*\.h$ ## I*.h files
f: Srv[1-9]\.def$ ## *Srv1.def to *Srv9.def files
f: ^[h,k,m] ## h*.*, k*.*, and m*.* files
Другие вопросы по тегам