val a =月(start_date),年(至今)

时间:2017-02-21 23:15:20

标签: scala

我有一个要求,我有一个像下面输入的字符串,我想要像下面的输出字符串。有人可以帮帮我吗?

示例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"

1 个答案:

答案 0 :(得分: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以逗号

加入该集