今天使用scala读取用户信息表分析出各个字段,切分的时候出现异常:

两个字段之间的分隔符为***ABC***

代码:

val linerecord =  line.split("***ABC***")

然后抛出:

Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
***ABC***

从字面意思上看,就是语法错误了,经过验证,是scala的正则表达式的问题,

val linerecord =  line.split("\\*\\*\\*ABC\\*\\*\\*")

这样写,把正则表达式里*转义为普通字符,就不会抛异常了。其他的正则表达式特殊符合一样,遇到转义一下就可以了。

scala里的正则表达式和Java基本一致。

08-31 21:22