繁体   English   中英

正则表达式php多行注释(合并)

[英]Regex php multiline comment (Meld)

我需要比较同一应用程序的两个不同版本。 这些文件已使用许可证签名,并且该许可证已更改。

我不希望仅将包含差异的许可证文件签名为不同文件。

我使用Meld作为差异软件,它允许使用正则表达式。

<?php
/**
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the License ....
 *
 */

有类似的问题,但没有一个对我有用:

  1. RegEx删除/ ** * /和// ** ** // php注释

  2. 如何执行忽略所有注释的差异?

正则表达式尝试:

\/\*.*?\*\/|\/\/.*?\n
~//?\s*\*[\s\S]*?\*\s*//?~

实际上,这看起来很有效,但是我不确定它过滤的太多了:

\*.*

更新:
这是不可能的: https : //mail.gnome.org/archives/meld-list/2011-December/msg00004.html

尽管Meld中的过滤器代码很乐意接受覆盖(并删除)多行的正则表达式,但这会导致diff看到的文本与我们显示的文本之间的行不匹配,因此所有更改块都是错误的。

不同的方法是在将行处理为融合之前从文件中删除行。

\s*\/\*.*|\s*\*.*

很明显,meld不接受所有的python regex作为文本过滤器,没有多行或“ |” 内括号。 因此,此解决方案不包括以星号开头的行和带有可选空格的“ / *”开头的行。 它不能精确地过滤掉所有的php注释,但是很适合您的文件。

还可以看一下: https : //mail.gnome.org/archives/meld-list/2011-December/msg00004.html

此正则表达式更适合多行使用:

  .*\/\*[^\/]+\/\s

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM