2017-02-21 63 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

相關問題