我正在尝试编写将匹配挪威所有电话号码的正则表达式。这意味着该号码可以以 +47、0047、47 开头或不以国家/地区代码开头。为了实现这一点,我使用以下正则表达式:

Pattern.compile("^((0047)?|(\"+47)?|(47)?)\"d{8}$")

问题是它永远不会匹配。我正在以下有效示例上对其进行测试:
90909090,   normal number
4790909090, number with country code
+4790909090, country code using +
004790909090, country code using 00

无效:
+47909090, without country code or too short number
9090909o,  invalid character
9090909,  too few digits
+4690909090, wrong country code
909090909, too many digits
00474790909090 Trying to fool the regex now

最佳答案

认为你正在寻找

(0047|\+47|47)?\d{8}

在您的 Java 表达式中将是:
Pattern.compile("(0047|\\+47|47)?\\d{8}");

关于java - 挪威数字的正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34001939/

10-12 21:25