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>
すべてのヘルプは非常に理解されるであろう!!!!
ファイル内でバックスラッシュをエスケープしていませんか? – shmosel
最も重要な情報がありません:プロパティファイルには何が書かれていますか?また、 'mobPattern'の内容を印刷すると助けになります。 –