Scala正则表达式

Scala正则表达式,scala,Scala,我使用以下对象来解析csv。语法分析器似乎工作正常,只是去掉了空格。有人能帮我弄清楚发生在哪里吗。谢谢 object CsvParser extends RegexParsers { override protected val whiteSpace = """[ \t]""".r def COMMA = "," def DQUOTE = "\"" def DQUOTE2 = "\"\"" ^^ { case _ => "\"" } def CR = "\r" d

我使用以下对象来解析csv。语法分析器似乎工作正常,只是去掉了空格。有人能帮我弄清楚发生在哪里吗。谢谢

object CsvParser extends RegexParsers {
  override protected val whiteSpace = """[ \t]""".r

  def COMMA = ","
  def DQUOTE = "\""
  def DQUOTE2 = "\"\"" ^^ { case _ => "\"" }
  def CR = "\r"
  def LF = "\n"
  def CRLF = "\r\n"
  def TXT = "[^\",\r\n]".r

  def record: Parser[List[String]] = rep1sep(field, COMMA)
  def field: Parser[String] = (escaped | nonescaped)
  def escaped: Parser[String] = (DQUOTE ~> ((TXT | COMMA | CR | LF | DQUOTE2)*) <~ DQUOTE) ^^ { case ls => ls.mkString("") }
  def nonescaped: Parser[String] = (TXT*) ^^ { case ls => ls.mkString("") }

  def parse(s: String) = parseAll(record, s) match {
    case Success(res, _) => res
    case _ => List[List[String]]()
  }
}
object CsvParser扩展regexparser{
覆盖受保护的val空格=“”[\t]”。r
def逗号=“,”
def DQUOTE=“\”
def DQUOTE2=“\”\”\”^{case\=>“\”}
def CR=“\r”
def LF=“\n”
def CRLF=“\r\n”
def TXT=“[^\”,\r\n]”。r
def记录:解析器[列表[字符串]]=rep1sep(字段,逗号)
定义字段:解析器[字符串]=(转义|未转义)
def转义:解析器[String]=(DQUOTE~>((TXT |逗号| CR | LF | DQUOTE2)*)ls.mkString(“”)
def nonescaped:Parser[String]=(TXT*)^{case ls=>ls.mkString(“”}
def parse(s:String)=parseAll(记录,s)匹配{
案例成功率(res,)=>res
大小写=>List[List[String]]()
}
}

我想我已经解决了。需要添加:

override val skipWhitespace = false

我想我明白了。需要补充:

override val skipWhitespace = false