2011-01-30 5 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