2013-10-21 33 views
1

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

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

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

+0

检查您的字符类。 –

+0

你为什么用括号括起'(00)|(+)'? –

+0

+必须逃脱。 –

回答

2

内部字符类的每一个字符字面匹配,这意味着[(00)|(+)]将这个表达式匹配0 or + or | or (or)

用途:

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

作品!非常感谢你! – Francis

+0

不客气,很高兴它解决了。 – anubhava