Я пытаюсь написать регулярное выражение, которое будет соответствовать всем телефонным номерам в Норвегии. Это означает, что число может начинаться с +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
У вас действительно есть '/' в конце? Он не может следовать концу строки. Попробуйте '^ (?: [+]? (?: 00)? 47)? [0-9] {8} $'. –
Вы действительно хотите, чтобы '\' 'посередине? В ваших примерах нет двойных кавычек. –
Я бы хотел отметить, что только потому, что стандартные норвежские телефонные номера сегодня 8 цифр, это не означает им это понравится навсегда. Или даже надолго. Плюс сегодня есть нестандартные номера, которые являются действительными номерами телефонов, которые не соответствуют вашему желаемому шаблону - см. http://www.nkom.no/market/numbering/ e.164-нумерация-план/общий-норвежский-нумерация-план-для-телефонии-etc.e.164 –