今天使用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基本一致。