将正则表达式与Scala匹配

时间:2018-11-29 15:06:42

标签: regex scala

我编写了以下函数

NetworkWebUserRoles

我的目的是解析以下字符串:import scala.util.matching.Regex val COL1 = "COL1" val COL2 = "COL2" val reg ="""(\w+)-(\w+)""".r val dataExtraction: String => Map[String, String] = { string: String => { string match { case reg(col1, col2) => Map(COL1 -> col1, COL2 -> col2) case _ => Map(COL1 -> "", COL2 -> "") } } } 并拥有dataExtraction("loe-MFM---0521")

任何想法如何实施?

1 个答案:

答案 0 :(得分:0)

您可以使用

val reg ="""(\w+)-(.+)""".r

请参见Scala demo online

正则表达式将匹配整个字符串(因为它在match块中使用),并将前1个单词组成的字符char放入组1(COL1)中,然后将连字符匹配,然后将除换行符以外的任何其他1+个字符捕获到组2(COL2)中。

如果COL2为空,请将.+替换为.*

相关问题