需求:在代码中碰到一个问题,需要将字符串中的\n 和 \r 替换成 <br/>, 英文的引号替换成中文的。
实现:
val inputStr=""
val mRegex = Regex("[\\r\\n\"\']")
val outputStr = mRegex.replace(inputStr) {
when (it.value) {
"\n" -> "<br/>"
"\r" -> "<br/>"
"\"" -> "“"
"\'" -> "’"
else -> {it.value}
}
}
思路:通过正则表达式匹配所有字符(这个比较简单),然后通过replace方法的lambda表达式获取MatchResult 对象,再通过it.value属性获取当前匹配的字符,最后通过when方法分类替换。