Мне нужно различать две разные версии одного и того же приложения.
Файлы подписаны лицензиями, и эта лицензия изменилась.
Я не хочу, чтобы файлы, содержащие только diff, были подписаны как разные.
я использую Meld
как программное обеспечение различий, и это позволяет для регулярных выражений.
<?php
/**
*
* NOTICE OF LICENSE
*
* This source file is subject to the License ....
*
*/
Есть похожие вопросы, но никто не работает для меня:
Регекс пытался:
\/\*.*?\*\/|\/\/.*?\n
~//?\s*\*[\s\S]*?\*\s*//?~
На самом деле этот выглядит хорошо, но я не уверен, что он фильтрует слишком много:
\*.*
ОБНОВИТЬ:
Это невозможно:
https://mail.gnome.org/archives/meld-list/2011-December/msg00004.html
Пока фильтр кода в Meld
с радостью примет регулярное выражение, которое охватывает (и удаляет) несколько строк,
это вызывает несоответствие строк между текстом, который видит дифференциал, и
текст, который мы отображаем, поэтому все блоки изменений будут неправильными.
Другой подход состоит в том, чтобы удалить строки из файлов перед их обработкой в объединение.
\s*\/\*.*|\s*\*.*
Ну, очевидно, meld не принимает все регулярные выражения Python в качестве текстового фильтра, ни многострочный, ни «|» внутренние скобки.
Таким образом, это решение исключает строки, начинающиеся со звезды и «/ *» с необязательными пробелами. Он не отфильтровывает все комментарии php, но может хорошо работать для ваших файлов.
Также взгляните на это:
https://mail.gnome.org/archives/meld-list/2011-December/msg00004.html
это регулярное выражение проще для многострочного использования:
.*\/\*[^\/]+\/\s