Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> regex Диапазон, regex 
:(
    Опции темы
vaxxxye
Дата 2.1.2016, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 2.1.2016

Репутация: нет
Всего: нет




Прошу у вас помощи форумчане.Помогите пожалуйста с настройками диапазона regex под укр номера.
Вот сама схема - но сложновато как то получается
\([\d]{2,3}\)[ ]{0,2}[\d]{7}
[\d]{3}-[\d]{3}-[\d]{2}-[\d]{2}
[\d]{3}[- ()]{1}[\d]{3}-[\d]{2}-[\d]{2}
[\d]{3}\) [\d]{7}
[\d]{3}\) [\d]{3}[ -]{1}[\d]{2}[ -]{1}[\d]{2}[ -]{1}
[\d]{12}|[\d]{11}
[\d]{10}|[\d]{9}
[\d]{3}[- ()]{1}[\d]{3}[- ()]{1}[\d]{2}[- ()]{1}[\d]{2}
[\d]{3}[- ()]{1}[\d]{2}[- ()]{1}[\d]{2}[- ()]{1}[\d]{3}
[\d]{3}[- ()]{1}[\d]{2}[- ()]{1}[\d]{3}[- ()]{1}[\d]{2}
[\d]{3}[- ()]{1}[\d]{7}
[\d]{3}[- ()]{1}[\d]{4}[- ()]{1}[\d]{3}
[\d]{3}[- ()]{1}[\d]{3}[- ()]{1}[\d]{4}
Как правильно вправить в этот код что бы принимало номера с телефонами "+38..." по примеру +38(097)xxxxxxx ? хотя бы один регекс,исходя из этого рг?
Благодарю за помощь и с НГ вас.

PM MAIL   Вверх
Romikgy
Дата 2.1.2016, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



примеры номеров накидать можете?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
mailer
Дата 3.1.2016, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 20.10.2010

Репутация: нет
Всего: нет



\+38\(?0\(?(?<code>\d{2})\)?(?<fg>\d{3})-?(?<sg>\d{2})-?(?<tg>\d{2})
Здесь четыре именованных группы:
    <code> - содержит код оператора (последние две цифры, поскольку код Украины в международном классификаторе не 38, а 380);
    <fg> - первые три цифры номера;
    <sg> - вторые две цифры номера;
    <tg> - последние две цифры номера.

Потом из этих групп собираете полный номер.
Матчится как минимум на следующие варианты ввода:

+380501234567
+38(097)1234567
+380(63)1234567
+380(66)123-4567
+380(50)123-45-67

И в качестве новогоднего подарка: 
  1.  Очень хороший онлайн RE тестер: https://regex101.com/
  2.  Синтаксический анализатор RE: http://regexper.com/ (не поддерживает именованные группы)

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
vaxxxye
Дата 3.1.2016, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 2.1.2016

Репутация: нет
Всего: нет



Цитата(Romikgy @ 2.1.2016,  22:27)
примеры номеров накидать можете?

Да конечно. Вот примеры номеров что бы проще было 
+38 098 307 89 53
+380 (50) 814-50-05
+380 (50) 81-45-005
+38 097-143-73-03
+38 (097)-143-73-03
+38 (097)14-37-303
ну это в общем.(Но смысла писать много нету,ибо схема выше "регулярок" работает по такому поиску символов только без учёта "38 и 380"). Мне хотя бы пару примеров по этой схеме что бы не нарушать структуру регулярок выше иначе перестает всё работать.А лучше довести до универсальности,думаю будет полезно пользователям.

Добавлено через 2 минуты и 24 секунды
Цитата(mailer @ 3.1.2016,  11:59)
\+38\(?0\(?(?<code>\d{2})\)?(?<fg>\d{3})-?(?<sg>\d{2})-?(?<tg>\d{2})
Здесь четыре именованных группы: 
    <code> - содержит код оператора (последние две цифры, поскольку код Украины в международном классификаторе не 38, а 380);
    <fg> - первые три цифры номера;
    <sg> - вторые две цифры номера;
    <tg> - последние две цифры номера.

Потом из этих групп собираете полный номер.
Матчится как минимум на следующие варианты ввода:

+380501234567
+38(097)1234567
+380(63)1234567
+380(66)123-4567
+380(50)123-45-67

И в качестве новогоднего подарка: 

  1.  Очень хороший онлайн RE тестер: https://regex101.com/
  2.  Синтаксический анализатор RE: http://regexper.com/ (не поддерживает именованные группы)

Этот ответ добавлен с нового Винграда - http://vingrad.com

К сожалению нарушив структуре регекса который выше,перестает работать всё) но все ровно благодарен за помощь и отзыв.Всё же лучше попробовать исходить из того что есть.
PM MAIL   Вверх
vaxxxye
Дата 3.1.2016, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 2.1.2016

Репутация: нет
Всего: нет



от к примеру эта регулярка " [\d]{3}-[\d]{3}-[\d]{2}-[\d]{2} " отвечает за поиск такого стандарта символов к примеру 097-955-55-55.А как бы подогнать под стандарты с +380 и 38.?
PM MAIL   Вверх
Romikgy
Дата 3.1.2016, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Код

\+38[ ]?\(?0[\( ]?\(?\d{2}\)?[ -]?\d{2,3}[ -]?\d{2,3}[ -]?\d{2,3}

работает в ваших примерах

Это сообщение отредактировал(а) Romikgy - 3.1.2016, 20:02


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
tzirechnoy
Дата 4.1.2016, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



По-моему, это страдание хернёй какой-то. Хотите нормально? Приведите телефон к E.164, затем можно код страны позицыонно сравнивать.
PM MAIL   Вверх
Romikgy
Дата 5.1.2016, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(vaxxxye @  3.1.2016,  16:02 Найти цитируемый пост)
А как бы подогнать под стандарты с +380 и 38.? 

Код

(\+?38)?[ ]?\(?0[\( ]?\(?\d{2}\)?[ -]?\d{2,3}[ -]?\d{2,3}[ -]?\d{2,3}



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
vadiml
Дата 5.1.2016, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 27.7.2007

Репутация: нет
Всего: 7



Зачистите номер телефона от всех нецифровых символов, а затем проверяйте корректность,

после, если надо, поставите сами скобки, дефисы и др. в положенных местах
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.1242 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.