1、三个引号:a regular(定期的、合格的、有规律的) expression
用处:字符串中含有特殊字符,java中需要转义符号,scala可以在三个引号中直接输特殊字符,不需要转义符
(1)会很忠实输出引号内的内容
(2)对齐输出:在每一行的开头加入前缀 |, 后面加入stripMargin,会去掉前缀 | 前面的空格,从控制台开头对齐输出
2、正则表达式模式匹配
- scala的正则表达式
- 正则表达式作为提取器,用于模式匹配:
// 每个括号中的匹配项看成是一个模式变量 // unanchored:不用整个字符串全部匹配 // 此时date是Regex对象,里面有unapply提取器方法 val date = """(\d\d\d\d)-(\d\d)-(\d\d)""".r.unanchored // 提取器 val date(year, month, day) = "Date 2018-12-04" // 如果没匹配上,会报错 println(year) // 2018 // 模式匹配 val copyright: String = "Date of this document: 2018-12-04" match { case date(y,m,d) => s"Copyright $y" // OK // case date(_*) => "has copyright" // 如果不需要里面的值,可以这样写,匹配到多个 case _ => "No copyright" } println(copyright) // Copyright 2018
- Regex类中有自带的unapply提取器
- 以括号为界限,每一个括号里的匹配项看成是一个模式变量