2017-06-02 14 views
1

私のコードでは正規表現パターンで携帯電話番号を検証しています。私のコードで正規表現パターンを一致させて正常に動作していますが、ファイルのないmatching.Belowは私のコードですRegExパターンが一致しない場合プロパティファイル

public class RegularExpTest { 
    public static final Hashtable<String, String> configDetails = new Hashtable<String, String>(); 
    public static void main(String[] args) { 
     try { 

      String str = "+917777777777"; 

      Properties properties = new Properties(); 
      InputStream input = new FileInputStream(new File(System 
        .getProperty("conf.path") 
        + "/webconfiguration.xml")); 
      properties.loadFromXML(input); 
      if (properties != null) { 
       Enumeration<Object> keyString = properties.keys(); 
       String key = ""; 
       while (keyString.hasMoreElements()) { 
        key = keyString.nextElement().toString(); 

        configDetails.put(key, properties.getProperty(key)); 
       } 
      } 
      String mobPattern = configDetails.get("MOB.PATTERN"); 
      Pattern mobilePattern = Pattern.compile(mobPattern); 
      if(mobilePattern.matcher(str).matches()) { 
       System.out.println("true"); 
      } else { 
       System.out.println("false"); 
      } 
     } catch(Exception e) { 
      e.printStackTrace(); 
     } 

    } 
} 

出力以下

True if I hard code the pattern in code 
False if I fetch the pattern from property file 

は私の正規表現である

^(\\+91)?[789]\\d{9}$ 

なぜ動作しないのですか?プロパティファイルからパターンを取得するとどうなりますか? webconfiguration.xml

<entry key="MOB.PATTERN">^(\\+91)?[789]\\d{9}$</entry> 

すべてのヘルプは非常に理解されるであろう!!!!

+1

ファイル内でバックスラッシュをエスケープしていませんか? – shmosel

+0

最も重要な情報がありません:プロパティファイルには何が書かれていますか?また、 'mobPattern'の内容を印刷すると助けになります。 –

+0

^(\\ + 91)?[789] \\ d {9} $これはファイルのパターンを指定した方法です – Madhesh

答えて

1

ファイルのバックスラッシュを削除しました。次に、期待通りの動作をします。@shmosel。ありがとうございます。

関連する問題