以“00”或“+”开头的电话号码的正则表达式

时间:2013-10-21 13:40:49

标签: java regex

我有一个正则表达式问题:我试图强制以“00”或“+”开头的电话号码,但我的尝试不起作用。

String PHONE_PATTERN = "^[(00)|(+)]{1}[0-9\\s.\\/-]{6,20}$";

它仍然允许例如“0123-45678”。我做错了什么?

2 个答案:

答案 0 :(得分:2)

在字符内部,每个字符都按字面匹配,这意味着[(00)|(+)]将匹配0 or + or | or ( or )

使用此正则表达式:

 String PHONE_PATTERN = "^(?:00|\\+)[0-9\\s.\\/-]{6,20}$";

答案 1 :(得分:0)

如果您已删除空格,连字符和数字中的任何内容,并且您要捕获+ xxnnnnnnnn或00xxnnnnnnnn,其中xx是国家/地区代码,n是9位数字或0nnnnnnnnn,其中非国际数字以零后跟9位数,然后试试这个正则表达式

 String PHONE_PATTERN = "^(?:(?:00|\+)\d{2}|0)[1-9](?:\d{8})$"