Мне нужно регулярное выражение, чтобы получить номера телефонов без кодов стран, если они есть. Похоже, что обходные пути должны работать для этого, но я не могу дойти до окончательного решения. Вот темы:regex префикс пропуска, если он есть, например код страны
In-country: 0008003428573
Outside: +91 4058 825058
With dots: +91.88.4732.1354
желаемая матчи:
8003428573
4058 825058
88.4732.1354
Я знаю, что могу использовать (?!91)
, чтобы избежать согласования 91
, таких как
(?!91)[1-9][-. 0-9]{8,11}[0-9](?![0-9])
... но потом он соответствует 1
, как 1 4058 825058
.
Я также нашел полное решение с использованием, если-то условие, при тестировании в Perl:
(?!91)(?(?=1)(?<!9)|)[1-9][-. 0-9]{8,11}[0-9](?![0-9])
, но потом выяснилось, что не работает с NSRegularExpression в Objective C.
The решение не может использовать группы, так как у меня есть несколько регулярных выражений для разных ситуаций, которые обрабатываются одним и тем же кодом. Код не может использовать группу 1 в некоторых случаях и группу 2 в других. Если нет способа решить это с помощью регулярных выражений. «91» не должен находиться в общем совпадении.
Есть ли способ сделать это с регулярным выражением в Obj-C?