2017-07-19 42 views
2

我们如何删除以第二个逗号开始的行之前的文本(示例中的第5行),如何使用正则表达式执行此操作? 示例:预计删除第二个逗号前面的文本('',“)字符串替换模式

, 
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} - 发生了两次:
    • .*? - 任何0+字符尽可能少到最左边的
    • ^,$ - 行只包含,
+0

谢谢Wiktor。 – vrk

相关问题