2017-02-21 60 views
-2

我有一个要求,我有一个像下面的输入字符串,我想像下面的输出字符串。谁能帮帮我吗 ?val a = month(start_date),year(to-date)

例如1

val input = "month(start_date),year(to_date),month(to_date)" 

output = "start_date,to-date" 

例如2

input = "abc(start),xyz(end)" 

output = "start,end" 
+0

是您的输入字符数组?像'val input =“month(start_date),year(to_date),month(to_date)”',它是什么类型? – prayagupd

+0

我的输入和输出都是“字符串” – sruthi

+1

您可能希望提供像'val input =“month(1989),year(2017),month(2017)”''这样的输入示例,是否有效? – prayagupd

回答

1

你需要一个正则表达式来获得在括号内

val input = "month(start_date),year(to_date),month(to_date)" 
val regex = "(?<=\\()[^)]+(?=\\))".r 
val output = regex.findAllIn(input).toSet.mkString(",") 

对正则表达式的解释值,你可以在这里找到它How do I match the contents of parenthesis in a scala regular expression

toSet删除重复的 和mkString使用逗号加入集合

+0

真棒,工作正常,感谢您的帮助 – sruthi

+0

嗨,今天我面临着更多的问题。我的字符串如下所示。你可以请帮助这个val input =“month(start_date),year(to_date),month(to_date),name,number”output =“start_date,to_date,name,number” – sruthi

+0

我认为正则表达式仍然有可能,但它可能过于复杂,为了简单起见,可能会分裂(“,”),然后做其他事情 – izht

相关问题