用三引号引起来的字符串不仅对多行字符串有用,而且还用于创建正则表达式模式,因为不需要使用反斜杠来转义反斜杠。举例如下:
val month = "(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)"
fun getPattern(): String = """\d{2} $month \d{4}"""
fun getPattern2(): String = "\\d{2} $month \\d{4}"
fun String.print(){
println(this)
}
fun main() {
val s = "CHINA 22 FEB 1999 USA"
s.replace(getPattern().toRegex(), "fuck").print()
s.replace(getPattern2().toRegex(), "fuck").print()
}
结果:
CHINA fuck USA
CHINA fuck USA