|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
АСУ ТПшник тупой дозвон по набору циферок. Если, конечно, забыть о номерах типа 0-800-FUCKHERE. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 14:49 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Они также оценивают мозговые усилия человека по анализу или прочтению кода. В данном конкретном случае - компактность записи регулярки в 1 строку - это некий самообман. Здесь мы используя квантовую механику регулярок сжали целый алгоритм парсера и описали в строке. И это есть проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 15:11 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton, вообще сейчас мне кажется, что нужно было в языке пробел оставить как разделительный символ, а символ пробела всегда применять как \s а то не понятно кого мы обманываем слепляя все символы в одну строку, и нужно напрягаться чтобы понять где там начало конструкции а где конец ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 15:15 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Был такой Джон Бекус. Он причастен к созданиям спецификаций первых языков программирования. Но прославился он тем что придумал форму Бэкуса-Науэра. Вобщем это некий декларативный язык который описывает грамматики. И описывает их достаточно красиво. И в этом языке есть некая плавность или последовательность в разработке кода. Тоесть в регулярке у вас обычно либо всё работает либо ничего не работает. А в генераторах парсеров Бэкуса вы можете красиво разделять задачу на части. Скомпилировать парсер на вашем ЯП. И оттестить с получением отдадочных сведений об ошибке. Например мобильный телефон может иметь локальный формат и международный. Этот рул описывается примерно так. Код: sql 1.
Далее вы, как господь который создает вселенную, описываете все что там будет. Цифры. Код: sql 1.
И потом число как рекурсивное самоопределение через цифру. Потом выражения телефонных форматов. Кодов стран. Диапазонов номерной емкости. e.t.c. Код: sql 1.
Я не призываю юзать БНФ. Я их сам юзал кажется 1.5 раза в жизни. Я просто привожу пример что кроме регулярок есть еще другой мир. Более красивый и наглядный. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 15:39 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
vi0 mayton, вообще сейчас мне кажется, что нужно было в языке пробел оставить как разделительный символ, а символ пробела всегда применять как \s а то не понятно кого мы обманываем слепляя все символы в одну строку, и нужно напрягаться чтобы понять где там начало конструкции а где конец ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 15:40 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
, ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 15:45 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Была такая задача на практике: форматировать полученную стрингу в номер тлф по E164 и записать в БД. Воспользовался готовой либой от гугла- https://github.com/google/libphonenumber. Накидал юнит тестов для проверки правильности работы алгоритма и сдал работу. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 16:21 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat mayton Саму регулярку что писал автор я еще не смотрел. Я бы вообще делал без регулярки. 1) убираем из строки все кроме цифр 2) если цифр 11 и начинается на 7 - не делаем ничего 3) если цифр 11 и начинается на 8 - заменяем 8 на 7 4) если цифр 10, то добавляем спереди 7 5) иначе ошибка. Именно. Дополнительно можно добавить: 0.5) Делаем трансляцию букв в цифры (A,B,C -> 2, D,E,F ->3 и т.д.). 4.5) Если вторая цифра не 9, то ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 17:32 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
vi0 vi0 mayton, вообще сейчас мне кажется, что нужно было в языке пробел оставить как разделительный символ, а символ пробела всегда применять как \s а то не понятно кого мы обманываем слепляя все символы в одну строку, и нужно напрягаться чтобы понять где там начало конструкции а где конец Ты и без вербозов мог это сделать. Я попробовал эксейпинг мультилайнов. Работает. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 18:39 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat mayton Саму регулярку что писал автор я еще не смотрел. Я бы вообще делал без регулярки. 1) убираем из строки все кроме цифр 2) если цифр 11 и начинается на 7 - не делаем ничего 3) если цифр 11 и начинается на 8 - заменяем 8 на 7 4) если цифр 10, то добавляем спереди 7 5) иначе ошибка. +1. Когда начал читать топик, собирался сказать практически то же самое. Основное отличие - для первого пункта регулярка вполне уместна, для 2-4 я тоже не стал бы слишком возражать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 20:27 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Я не призываю юзать БНФ. Я их сам юзал кажется 1.5 раза в жизни. Я просто привожу пример что кроме регулярок есть еще другой мир. Более красивый и наглядный. да быстрее будет просто все символы в строке перебрать и сравнить их с массивом 0-9 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 22:24 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 mayton Я не призываю юзать БНФ. Я их сам юзал кажется 1.5 раза в жизни. Я просто привожу пример что кроме регулярок есть еще другой мир. Более красивый и наглядный. да быстрее будет просто все символы в строке перебрать и сравнить их с массивом 0-9 Да. Можно и все символы перебирать. Главное - код должен быть понятным для читающего. Регулярки создавались не для того чтобы запутать другого программиста. А для того чтобы помочь. Чтоб понять всю глубину глубин - просто представте что вам в саппорт упадет два варианта исходника. Регулярка длиной в строку экрана. Или императивный алгоритм с 1 циклом как я приводил в примере. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 22:29 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Alibek B. пропущено... тся на 8 - заменяем 8 на 7 4) если цифр 10, то добавляем спереди 7 5) иначе ошибка. Именно. Дополнительно можно добавить: … 4.5) Если вторая цифра не 9, то ошибка. За что вы так? Вот захочу позвонить в приемную президента РФ (тел.: 8 495 625 35 81) или в мэрию Томска (они так пишут: (+7 3822) 99-13-77), а ваше правило не даст. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 01:01 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Ты и без вербозов мог это сделать. Не получается без: Код: python 1. 2. 3. 4. 5. 6. 7.
Результат: [] ['1'] https://docs.python.org/3/library/re.html ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 10:06 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Чувак. В multiline вставляются физически символы перевода строк. А я говорю о дизайне исходника без перевода строк. Но выглядящем как с переводом. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 10:16 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Чувак. В multiline вставляются физически символы перевода строк. А я говорю о дизайне исходника без перевода строк. Но выглядящем как с переводом. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 10:21 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Я не знаю Python и не использую vs code. Я просто проверил в repl реакцию python на эскейпинг в конце. И все что я писал - не имеет отношения к verbose. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 11:19 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Мультилайн вообще можно по разному сделать. Для java: 1) Код: java 1. 2. 3.
2) Какая-то своя функция Код: java 1. 2. 3.
3) Начиная с JDK-13: Код: java 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 11:39 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Регулярки создавались для того чтобы помочь. да, только они медленные, поэтому лучше заменять, где возможно. PVS-studio, кстати, работает без них, например. mayton Регулярка длиной в строку экрана. Или императивный алгоритм с 1 циклом как я приводил в примере. в этом примере? mayton Далее вы, как господь который создает вселенную, описываете все что там будет . звучит как-то сложно... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 12:24 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Я просто привожу пример что отладка регулярок может представлять собой проблему. И ведь это (по топику) не самая сложная регулярка. Регулярка которая проверяет email где-то была опубликована и она была размером с лист А4 текста. Это мать ево unsupportable. Или надо быть экспертом. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 12:27 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Регулярка которая проверяет email где-то была опубликована и она была размером с лист А4 текста. Это мать ево unsupportable. Или надо быть экспертом. Для начала это вопрос формата. Если записывать регулярку в стиле brainfuck - понятно, она может быть непроста в поддержке. С другой стороны, их поддержка требуется очень редко. Но никто не мешает сделать структурированную форму записи регулярок, хоть тот же XML для любителей. Со всеми атрибутами и комментариями. А сгенерить по xml строку итогового выражения - ну совершенно не сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 12:41 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Регулярка которая проверяет email где-то была опубликована и она была размером с лист А4 текста. Это мать ево unsupportable. Или надо быть экспертом. У меня рабочее мыло нестандартное, одни цифры и .ru, оформлял на госуслугах заявление на замену водительских прав, почта рабочая не прошла проверку, пришлось @mail.ru указать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 13:13 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Ы2 За что вы так? Вот захочу позвонить в приемную президента РФ (тел.: 8 495 625 35 81) или в мэрию Томска (они так пишут: (+7 3822) 99-13-77), а ваше правило не даст. Раньше для городских номеров не писали +7 или 8, т.е. корректная запись (495) 625 35 81 или (3822) 99-13-77 есть еще маленькие города с пятизначными номерами, например администрация Ишима (34551) 5-15-00 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 13:37 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Dima T есть еще маленькие города с пятизначными номерами По-моему, таких уже нет. У нас, например, еще при царе горохе четвертую цифру кода города превратили в первую цифру номера. Я уверен, что это делается какой-нибудь простейшей перенастройкой АТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 13:45 |
|
|
start [/forum/topic.php?fid=16&msg=40023162&tid=1339709]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
others: | 245ms |
total: | 428ms |
0 / 0 |