一个换行符引起的问题

     今天收到邮件,说甲方的运维人员经过咱们的门户系统导入一批数据,但有个别号码在下一个运行模块中出现异常,查缘由是甲方导入的数据中,个别手机号码字段后存在不可见换行符。检查导入模块的代码,有作校验,逻辑大概以下(java):java

 

 Pattern msisdn = Pattern
                     . compile("^((13[0-9])|(15[0-9])|(18[0-9]))\\d{8}$");

            if (a == null || "".equals(a)) {
                System. out.println( "移动号码不能为空;<br/>" );
           } else if (!msisdn.matcher(a).find()) {
                System. out.println( "无效的移动号码;<br/>" );
           } else {
                System. out.println( "号码正确");
           }

   直觉我也以为它能仅匹配出11位数字字符,但通过实验发现,它竟然忽视了换行符(有和没有,都同样)。 运维

这个状况在perl中也存在,查了一下资料,若是要匹配换行符,须要加特别标识,如perl中如何要用 ‘.’ 匹配换行符,须要使用/m /s , 也就是说,它默认就忽略换行符。spa

相关文章
相关标签/搜索