我需要对同一个应用程序的两个不同版本进行区分。 这些文件使用许可证签名,许可证已更改。
我不希望包含仅许可证差异的文件被标记为不同。
我使用Meld
作为差异软件,它允许使用正则表达式。
<?php
/**
*
* NOTICE OF LICENSE
*
* This source file is subject to the License ....
*
*/
有类似的问题,但没有一个对我有用:
Regex尝试过:
\/\*.*?\*\/|\/\/.*?\n
~//?\s*\*[\s\S]*?\*\s*//?~
实际上这个看起来有效,但我不确定它是否过滤过多:
\*.*
更新
这是不可能的:
https://mail.gnome.org/archives/meld-list/2011-December/msg00004.html
虽然过滤器代码在Meld中 很乐意接受覆盖(并删除)多行的正则表达式, 这会导致差异看到的文本与文本之间的行不匹配 我们显示的文本,因此所有更改块都是错误的。
不同的方法是在将文件处理成文件之前从文件中删除这些行。
答案 0 :(得分:0)
\s*\/\*.*|\s*\*.*
显然meld并不接受所有python正则表达式作为文本过滤器,没有多行也不接受&#34; |&#34;在括号内。 因此,此解决方案不包括以星号开头的行和&#34; / *&#34;带有可选空格。它不会精确地过滤掉所有的PHP注释,但可能适用于您的文件。
另外看看: https://mail.gnome.org/archives/meld-list/2011-December/msg00004.html
答案 1 :(得分:0)
此正则表达式更易于多行使用:
.*\/\*[^\/]+\/\s