2017-07-19 18 views
2

2番目のカンマ(この例では5行目)で始まる行の前にテキストを削除するにはどうすればよいですか? 例:予想2番目のカンマ( ''、 ")の前のテキストを削除する文字列置換パターン

, 
abc,xyz,ggg,nrmr 
cde,jjj,kkkk,iiii,tem,posting 
234,mm/dd/yy 
, 
454654,output2,sample 
45646,output1,non-sample 
16546,225.02 
ABC,2.98 

454654,output2,sample 
45646,output1,non-sample 
16546,225.02 
ABC,2.98 
+0

http://ideone.com/f9pVW2 –

+0

感謝を試してみてください、 はどのように我々は、上記の例では5行目の前にテキストを削除することができますか? – vrk

+0

試すhttp://ideone.com/BaoC8H –

答えて

1

あなたが

val s = """, 
abc,xyz,ggg,nrmr 
cde,jjj,kkkk,iiii,tem,posting 
234,mm/dd/yy 
, 
454654,output2,sample 
45646,output1,non-sample 
16546,225.02 
ABC,2.98""" 
val res = s.replaceFirst("(?sm)\\A(.*?^,$){2}", "").trim() 
println(res) 
// => 
// 454654,output2,sample 
// 45646,output1,non-sample 
// 16546,225.02 
// ABC,2.98 

参照を使用しているようですScala demo

パターンはの詳細:

  • (?sm)からsは改行を含む文字列内の任意の文字と一致する.を可能にし、そしてmラインの^$対戦開始/終了を行うそれぞれ
  • \\A - 開始文字列の
  • (.*?^,$){2} - 2の出現:
    • .*? - だけ,を含む行 - いくつかの可能な限り最高左端
    • ^,$に任意の0+文字。
+0

Wiktorをお願いします。 – vrk

関連する問題