我遇到了一个正则表达式问题:我试图强制使用以“00”或“+”开头的电话号码,但我的尝试不起作用。
String PHONE_PATTERN = "^[(00)|(+)]{1}[0-9\\s.\\/-]{6,20}$";
它仍然允许例如“0123-45678”。我究竟做错了什么?
在字符类中,每个字符都按字面意思匹配,这意味着[(00)|(+)]
将匹配一个0 or + or | or ( or )
使用这个正则表达式:
String PHONE_PATTERN = "^(?:00|\\+)[0-9\\s.\\/-]{6,20}$";
如果您从号码中删除了空格、连字符和其他任何内容,并且您想捕获 +xxnnnnnnnn 或 00xxnnnnnnnn 其中 xx 是国家代码当然,n 是 9 位数字或 0nnnnnnnnn 其中以零开头的非国际号码是后跟 9 位数字,然后试试这个正则表达式
String PHONE_PATTERN = "^(?:(?:00|\+)\d{2}|0)[1-9](?:\d{8})$"