に問題がありreplaceregexp
ます。わかりやすくするために、実際のコードではなく、簡単な例を使用します。
したがって、2つの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ファイルの「UNDESIRABLECOMMENTS」の部分を削除したいのですが、手動ではなく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>
}
}
「UNDESIRABLECOMMENTS」の最初から2番目の関数の説明の最後までの間にあったものはすべて削除されました。
したがって、問題は次のとおりです。replaceregexpがさらに* /を検出すると、最後の* /で停止し、「UNDESIRABLECOMMENTS」とこの最後の*/の間のすべてを削除します。
「望ましくないコメント」と最初に見つかった*/の間にあるものを削除するだけの解決策はありますか?