我在读取的文件中有以下行,然后我找到了常见的分隔符,在这种情况下是空格,之后我将列标题映射到每行的值,然后转换为JSON
id name DOB
1 john doe 2000-01-01
2 jane doe 1990-01-01
列之间有一个或多个空格,我需要拆分每一行,但要将名称保留为一个单元(" john doe"," jane doe"),请注意分隔符也可以是一个或多个选项卡。转换为JSON后,由于id和name之间有三个空格,而name和DOB之间有一个空格,结果不正确
编辑: 通过查找最常见的分隔符找到分隔符:
val delimitersList = List(",", ";", ":", "\\|", "\\t", "-", "_", "\\+", "-"," ")
val delimiterMap = scala.collection.mutable.LinkedHashMap[String, Int]()
for (a <- delimitersList)
delimiterMap += a ->(a+"+").r.findAllIn(line).length
val sortedMap = (delimiterMap.toList sortWith ((x, y) => x._2 > y._2)).take(2)
val firstDelimiter = sortedMap.head._1.toString
由于
答案 0 :(得分:1)
匹配以下模式:
(\ d +)。*?([a-zA-Z] *?[a-zA-Z] *?)([0-9] + - [\ d] + - [\ d] +)
如果列之间有可变空格和制表符,它将匹配。但它假设名称始终用单个空格分隔