Строка быстрого поиска регулярных выражений, кроме \ r \ n и \ t - PullRequest
1 голос
/ 07 марта 2019

Я пытаюсь сопоставить номера телефонов, состоящие из 6 или более цифр, со следующим регулярным выражением в swift.Телефонные номера также могут содержать парантез и + для кодов стран.

"[0-9\\s\\-\\+\\(\\)]{6,}".

Однако вышеприведенная реализация также соответствует \r\n и \t.Как я могу написать регулярное выражение так, чтобы оно не совпадало ни с одним \r\n или \t.

Я попытался сделать следующее, но ничего не вышло: "[0-9\\s\\-\\+\\(\\)(^\\r\\n\\t)]{6,}" "[0-9\\s\\-\\+\\(\\)(?: (\\r|\\n|\\r\\n|\\t)]{6,}"

Спасибо.

1 Ответ

0 голосов
/ 07 марта 2019

Я предлагаю использовать

let regex = "^(?:[ +()-]*[0-9]){6,}[ +()-]*$"

Или

let regex = "^(?:[ +()-]*[0-9]){6,}[ +()-]*\\z"

Подробности

  • ^ - начало строки
  • (?:[ +()-]*[0-9]){6,} - шесть или более повторений
    • [ +()-]* - ноль или более пробелов, +, (, ) или - символов
    • [0-9] - цифра
  • [ +()-]* - ноль или более пробелов, +, (, ) или - символов
  • $ - конец строки (\z - самый конец строки).

Если шаблон используется внутри NSPredicate с MATCHES, вы можете опустить ^ и $ / \z якоря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...