2011-01-30 8 views
1

私は各行の先頭に、各行の終わりに何かを追加したい:Groovy GString、複数行正規表現 - 行数を数える方法は?

def mystring=""" 
hello 
world 
""" 
matcher = (mystring =~ /(?ms)^/); 
excerpt = matcher.replaceAll("put '"); 
matcher = (excerpt =~ /(?ms)$/); 
excerpt2 = matcher.replaceAll(" ';"); 
println excerpt2 

私は

put 'hello'; 
    put 'world'; 

を持つことが期待しかし、私は

put ' '; 
put 'hello '; 
put 'world '; 
'; 
を得ました

これは、実際の行がなくても "^"の後に "^"があることを意味します。(?m)を使って3行作成しましたか?

ありがとうございます。これは何をしたいん

+0

は 'あなただけ取り替える必要があるかもしれませ出力します\ N '\''とn''その後、 '' 'を削除しますか? – YOU

答えて

1

私は思う:

def mystring=""" 
hello 
world 
""" 

matcher = mystring =~ /(?ms)^(.*?)$/ 
excerpt = matcher.collect{ "put '${it[0]}';" }.join('\n') 
println excerpt 

少なくとも私にとって、それは

put ''; 
put 'hello'; 
put 'world'; 
+0

'(。*?)'を '([^ \ n] +)に変更すると、空白行btwはスキップされます。 – YOU

関連する問題