2

groovy を使用して複数行のコメントを削除するにはどうすればよいですか?

/* Use groovy replaceAll regex to 
   remove this comment */

上記のテキストをファイルからファイル オブジェクトに読み込み、それを文字列に変換します。コメントが 1 行にまたがる場合は、以下に投稿されている replaceAll メソッドを使用して削除できます。

def file = new File('myfile')
def fileString = file.getText()

println fileString.replaceAll('/\\* .* \\*/','')

(?m) フラグを使用しようとしましたが、パターンを認識できません。私は次のステートメントを試しましたが、それらはすべて私のパターンと一致しません。

fileString.replaceAll('(?m)/\\* (.*) \\*/'    ,'')  #multiline switch
fileString.replaceAll('(/\\*)(.|\n\r)*(\\*/)' ,'')  #match all .* (include \n\r)

DotAll、末尾の (\s)、および ${} を使用することを考えました。しかし、それを正規表現に効果的に混在させる方法がわかりません。どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

7

次の表現を試してください。

'(?s)/\\*.*?\\*/'

(?m).改行をマッチさせません、(?s)そうします。

于 2012-06-08T19:30:39.563 に答える
0

次のようなことをします

/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/

正規表現の部分で動作しますか?

( http://ostermiller.org/findcomment.htmlより)

于 2012-06-08T19:27:15.417 に答える