【发布时间】:2019-05-01 09:06:23
【问题描述】:
我写了以下函数:
import scala.util.matching.Regex
val COL1 = "COL1"
val COL2 = "COL2"
val COL3 = "COL3"
val COL4 = "COL4"
val COL5 = "COL5"
val reg = ".+-([\w\d]{3})-([\d\w]{3})-([\d\w]{3})-([\w]+)$-([\w]+)".r.unanchored
val dataExtraction: String => Map[String, String] = {
string: String => {
string match {
case reg(col1, col2, col3, col4, col5) =>
Map(COL1 -> col1, COL2 -> col2, COL3 -> col3, COL4 -> col4 ,COL5 -> col5 )
case _ => Map(COL1 -> "", COL2 -> "", COL3 -> "", COL4 -> "" ,COL5 -> "" )
}
}
}
它应该解析像“dep-gll-cde3-l4-result”或“cde3-gll-dep-l4-result”这样的字符串
知道如何定义一个解析这两个的正则表达式
【问题讨论】:
-
没有必要发布重复的问题。以下方法有什么问题?
-
Scalacode,你的意思是你想要
"""(?:.*/)?(\w{3,4})-(\w{3})-(\w{3,4})-(\w+)-(\w+)""".r或"""(?:.*/)?(\w{3,4})-(\w{3})-(\w{3,4})-(\w+)-(\w+)\.orc""".r之类的东西吗?实际输入和预期输出是多少? -
不要发布重复的问题。