一個換行符引起的問題

     今天收到郵件,說甲方的運維人員經過咱們的門戶系統導入一批數據,但有個別號碼在下一個運行模塊中出現異常,查緣由是甲方導入的數據中,個別手機號碼字段後存在不可見換行符。檢查導入模塊的代碼,有作校驗,邏輯大概以下(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

相關文章
相關標籤/搜索