replaceregexp
我遇到了一些问题。为了更容易理解,我将使用简单的例子,而不是真正的代码。
所以假设我有两个java文件:
firstClass.java
/**
* UNDESIRABLE COMMENTS ABCDEFGHIJ ABCDEFGHIJ ABCDEFGHIJ ABCDEFGHIJ ABCDEFGHIJ
* ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ
*/
public class firstClass{
public String firstFunction(){
<instructions>
}
/**
* My function's description that I want to keep
*/
public String secondFunction(){
<instructions>
}
}
secondClass.java
/**
* UNDESIRABLE COMMENTS ABCDEFGHIJ ABCDEFGHIJ ABCDEFGHIJ ABCDEFGHIJ ABCDEFGHIJ
* ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ
*/
public class secondClass{
public String firstFunction(){
<instructions>
}
}
所以我想删除项目中每个java文件的“UNDESIRABLE COMMENTS”部分,但我想用ANT,而不是手动执行。为此,我正在使用它:
<replaceregexp flags="s">
<regexp pattern="UNDESIRABLE COMMENTS.+\*/"/>
<substitution expression="*/"/>
<fileset dir=".">
<filename name="*.java"/>
</fileset>
</replaceregexp>
我想要的是获取此代码:
firstClass.java
/**
*/
public class firstClass{
public String firstFunction(){
<instructions>
}
/**
* My function's description that I want to keep
*/
public String secondFunction(){
<instructions>
}
}
secondClass.java
/**
*/
public class secondClass{
public String firstFunction(){
<instructions>
}
}
它适用于secondClass.java但不适用于第一个文件。当存在其他注释时会出现问题,例如函数的描述。文件secondClass.java结果很好,但是在firstClass.java中我得到了这个:
/**
*/
public String secondFunction(){
<instructions>
}
}
删除了“不可思议的评论”开头到我的第二个函数说明结尾之间的所有内容。
所以问题是:当我的replaceregexp找到更多* /时,它会在最后一个上停止,并删除“UNDESIRABLE COMMENTS”和最后一个* /之间的所有内容。
您是否有任何解决方案可以删除“难以置信的评论”和第一个* /找到的内容?