Нужна помощь с составлении регулярного выражения

Мне нужно сделать проверку, что введенные пользователем данные в таком формате:

Иванов Иван Иванович, 1665645, https://t.me/ivan

Но у меня как то не получается, так как пока еще слаб в регулярках, может кто помочь ?


Ответы (1 шт):

Автор решения: Frehzy
[А-Яа-я]+\s+[А-Яа-я]+\s+[А-Яа-я]+,([ ]*)+([0-9]{7})+,([ ]*)+(http|https):\/\/t.me\/(([^_])([A-Za-z]{4,32})([^_]))

Разбор:

  • [А-Яа-я]+\s - 1-3 слово. от А/а до Я/я. После слова 1 и более пробел

  • +,([ ]*)+([0-9]{7})+,([ ]*)+ - 4 слово. После 3 слова 0 и более пробелов, комбинация из символов от 0 до 9. Размер ровно 7 символов

  • +,([ ]*)+(http|https):\/\/t.me\/ - 5 слово (ссылка). По аналогии, проверка на 0 и более пробелов, проверка введён http или https, проверка "//t.me/", проверка от A/a до Z/z до бесконечности

  • (([^_])([A-Za-z]{4,32})([^_])) - имя пользователя. Длина от 5 до 32. Не может начинаться на _ и заканчиваться на _

Тестировал через сайт https://regexr.com/

Не очень точно знаю регулярку, поэтому не смог вспомнить, как пробелы нормально оформить без +([ ]{1,})+. Если есть предложения, пишите в комментариях - поправлю.

Тестируемые слова:

введите сюда описание изображения

→ Ссылка