scala-三个引号、正则表达式匹配

1、三个引号:a regular(定期的、合格的、有规律的) expression

用处:字符串中含有特殊字符,java中需要转义符号,scala可以在三个引号中直接输特殊字符,不需要转义符

(1)会很忠实输出引号内的内容

scala-三个引号、正则表达式匹配_第1张图片

(2)对齐输出:在每一行的开头加入前缀 |, 后面加入stripMargin,会去掉前缀 | 前面的空格,从控制台开头对齐输出

2、正则表达式模式匹配

  1. scala的正则表达式
  2. 正则表达式作为提取器,用于模式匹配:
    // 每个括号中的匹配项看成是一个模式变量
    // 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
    1. Regex类中有自带的unapply提取器
    2. 以括号为界限,每一个括号里的匹配项看成是一个模式变量

 

你可能感兴趣的:(scala)