今天在解析数据时,发现json中的一个字段nick_name(微信昵称)中存在表情符号。
原始数据:这是一个很长的测试昵称~$!-_🤒0
插入数据库中报错
当然这个问题的另外一种解决方式在其他地方会解释。在解决不了的前提下,只能去除数据中的特殊符号,因此用到正则表达式。
代码如下:
import scala.util.matching.Regex
object RegexTest {
def main(args: Array[String]): Unit = {
//正则规则(只保留中英文数字和部分字符)
var p_t = new Regex("[A-Za-z0-9_\\-\\u4e00-\\u9fa5]+")
//放入IDEA中自动转义了
var nick_name = "这是一个很长的测试昵称~$!-_\uD83E\uDD120"
println((p_t findAllIn nick_name).mkString(",").replace(",", ""))
}
}
执行结果:
如果还是不想要-和_的话可以继续使用replace