我有一些问题replaceregexp
。为了更容易理解,我将使用简单的示例,而不是真实的代码。
所以假设我有 2 个 java 文件:
第一类.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>
}
}
第二类.java
/**
* UNDESIRABLE COMMENTS ABCDEFGHIJ ABCDEFGHIJ ABCDEFGHIJ ABCDEFGHIJ ABCDEFGHIJ
* ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ
*/
public class secondClass{
public String firstFunction(){
<instructions>
}
}
所以我想删除我项目中每个java文件的“不受欢迎的评论”部分,但我想用ANT来做,而不是手动。为此,我正在使用这个:
<replaceregexp flags="s">
<regexp pattern="UNDESIRABLE COMMENTS.+\*/"/>
<substitution expression="*/"/>
<fileset dir=".">
<filename name="*.java"/>
</fileset>
</replaceregexp>
我想要的是得到这个代码:
第一类.java
/**
*/
public class firstClass{
public String firstFunction(){
<instructions>
}
/**
* My function's description that I want to keep
*/
public String secondFunction(){
<instructions>
}
}
第二类.java
/**
*/
public class secondClass{
public String firstFunction(){
<instructions>
}
}
它适用于 secondClass.java 但不适用于第一个文件。当有其他注释时会出现问题,例如函数的描述。文件 secondClass.java 结果很好,但在 firstClass.java 我得到了这个:
/**
*/
public String secondFunction(){
<instructions>
}
}
从“不受欢迎的评论”开始到我的第二个功能描述结束之间的所有内容都被删除了。
所以问题是:当我的 replaceregexp 找到更多 */ 时,它会停在最后一个,并删除“UNDESIRABLE COMMENTS”和最后一个 */ 之间的所有内容。
您有什么解决方案可以删除“不良评论”和找到的第一个 */ 之间的内容吗?