2016-08-17 20 views
-1

は、私は、次の電話番号をカバーするために正規表現を書きたい:説明とインドの電話番号正規表現

+91 33 1234 5678 (landline with two digit city code. 33 in this example) 
+91 123 1234 5678 (landline with three digit city code. 123 in this example) 
+91 12345 67890 (mobile no. Mobile no starts with 9 or 8 or 7) 

すべてのヘルプは非常に参考になります。私が使用しています

コードでは、まずあなたが最初にあなたの正規表現を変更する必要がある、まあ

\+91\s([\d]{2,3}\s)?[\d]{2,5}\s[\d]{3,4} 
+2

質問は何ですか? – Xufox

+0

'[\ d]'は必要ありません。 '\ d'(大括弧なし)を使用してください。 – 4castle

+0

電話番号を検証するのは難しいです。既存のライブラリを使用します(例: [Googleの](https://github.com/googlei18n/libphonenumber)。 –

答えて

0

です。最後の数字は5桁です。したがって、54を変更する必要があります。次に、角かっこを取り外します。あなたはそれらを必要としません。その後、正規表現はどの言語でも動作します。 \はエスケープ文字なので、ダブル\\を使用する必要があります。

public static void main(String[] args) 
{ 
    String line = "+91 33 1234 5678 (landline with two digit city code. 33 in this example) +91 123 1234 5678 (landline with three digit city code. 123 in this example) +91 12345 67890 (mobile no. Mobile no starts with 9 or 8 or 7)"; 

    String pattern = "\\+91\\s(\\d{2,3}\\s)?\\d{2,5}\\s\\d{3,5}"; 

    Pattern r = Pattern.compile(pattern); 

    Matcher m = r.matcher(line); 

    while (m.find()) { 
     System.out.println("Found value: " + m.group(0)); 
    } 
} 

プリント:

Found value: +91 33 1234 5678 
Found value: +91 123 1234 5678 
Found value: +91 12345 67890 
関連する問題