这是问题所在。我正在编写一个从Bug跟踪系统查询错误附件的软件。我只能通过获取文本附件(普通/文本等)来过滤查询,并且我只想保留有效的补丁文件(具有类似diff -u输出的文件,可以作为补丁应用于源文件)。所以我需要一种方法来指定哪个附件是有效的补丁。例如:
让我说这个附件包含以下内容:
--- compiler / cpp / src / generate / t_csharp_generator.cc(修订版1033689) +++ compiler / cpp / src / generate / t_csharp_generator.cc(工作副本) @@ -456,7 +456,7 @@ t =((t_typedef *)t) - > get_type(); } if((* m_iter) - > get_value()!= NULL){ - print_const_value(out,“this。”+(* m_iter) - > get_name(),t,(* m_iter) - > get_value(),true,true); + print_const_value(out,“this._”+(* m_iter) - > get_name(),t,(* m_iter) - > get_value(),true,true); } }
我怎么知道这是一个有效的补丁?是否有正则表达式匹配一些可能的diff -u输出,所以我可以在java中编写类似的东西:
String attachmentContent = ..... 如果(attachmentContent.matches(正则表达式))...
提前谢谢你, 埃尔维斯
答案 0 :(得分:0)
您将无法使用简单的正则表达式进行测试,也不能使用复杂的方法进行测试,它需要一个能够将@@之间的部分解释为数字的正则表达式引擎,并从中定义重复计数,我不知道这样做的RE引擎。
另一方面,您在查找库解析和加载Unix补丁时不应该遇到太多问题(这绝对不是计算密集型任务),因此只需尝试加载补丁就可以验证它。例如Java diff utils应该直接做到这一点。