|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Добрый день Прошу покритиковать решение. Интересно где есть избыточность - может быть можно меньшим количество кода обойтись или более быстрое решение есть. Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 13:18 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
А как сделать минимально самодостаточный сорс? А то в этом чего-то не хватает. Код: python 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 13:49 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Правильное решение задачи начинается с её правильной постановки. А твое "как бы его мог ввести человек" это не задача, а пепец. Человек "может" ввести его задом наперед в восьмеричном исчислении. Опиши формально, какой формат считается корректным, тогда можно будет о чем-то говорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 13:53 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Иногда бизнес приходит к программисту и почёсывая ухо говорит дескыть вот надо такую штуку сделать. Шобы значить вот эти целепхончики были гуд. А эти - фуфу. Слишком сильно давить на наличие постановки я-бы не стал. И данная техническая сторя вполне по силу к обобщению программистом. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 14:14 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton бизнес приходит к программисту Ну и, вот, у меня к "бузинесу", например, сразу же вопрос: +9 123 456-78-90 вполне себе нормальный индийский номер, с какого лешего он "Fail!". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 14:27 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat mayton бизнес приходит к программисту Ну и, вот, у меня к "бузинесу", например, сразу же вопрос: +9 123 456-78-90 вполне себе нормальный индийский номер, с какого лешего он "Fail!". Беря во внимание что у нас сейчас нед диалога с бизнесом - предлагаю просто порассуждать на тему критики решения. А тестовый кейс просто воспринимать как данность. Если что - скорректируем. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 14:37 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Саму регулярку что писал автор я еще не смотрел. Но КМК если мы будем явно идти от позитивных кейсов - то мы потеряемся. Нам проще проверить негативные. Тоесть разделить универсум на хорошие телефоны и плохие. А не так как автор - искать из вселенной немалое и тоже по мощности бесконечное количество вариантов и потом в остатке получать негативные. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 14:57 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Как-то так. Еще добавить проверку на парность скобочек, пофиксить ошибку компилляции и все тесты будут зеленые. Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 15:58 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Саму регулярку что писал автор я еще не смотрел. Я бы вообще делал без регулярки. 1) убираем из строки все кроме цифр 2) если цифр 11 и начинается на 7 - не делаем ничего 3) если цифр 11 и начинается на 8 - заменяем 8 на 7 4) если цифр 10, то добавляем спереди 7 5) иначе ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 17:32 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Я вообще - не знаю python. Так. Посмотрел названия строковых функций и как делать foreach. Кто знает что за херня? Код: python 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 17:59 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton разделить универсум на хорошие телефоны и плохие. С практической точки зрения, проверить "хороший" телефон можно только позвонив на него. Какой смысл в "хорошести" номера, если на него все равно никто не отвечает. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 19:06 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
В топике речь идет о сборе сведений. После того как телефоны собраны - их можно дать на вход роботу который делает обзвон. Но согласись.. было бы странно роботу скидывать мусор вообще не проверив ничего. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 19:19 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Лично меня задолбали телефонные спамеры, я бы этот топик просто закрыл, но поделюсь методом борьбы с этими уродами: звонок принять, не сбрасывать, просто положить телефон на стол и пусть они кричат "алло". Робот переключит на оператора, оператор поаллокает, эффективность спама упадет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 22:16 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Dima T Лично меня задолбали телефонные спамеры, я бы этот топик просто закрыл, но поделюсь методом борьбы с этими уродами: звонок принять, не сбрасывать, просто положить телефон на стол и пусть они кричат "алло". Робот переключит на оператора, оператор поаллокает, эффективность спама упадет. Андроид неплохо детектирует спам по своим БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 23:21 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Меня бы больше беспокоили не спамеры а коллекторские звонки когда номер не определен. Интересно зачем мобильные операторы это позволяют. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 23:30 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Проверка парности скобочек - была задачей на собес. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2020, 23:48 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Интересно зачем мобильные операторы это позволяют. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 07:01 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat Правильное решение задачи начинается с её правильной постановки. А твое "как бы его мог ввести человек" это не задача, а пепец. Человек "может" ввести его задом наперед в восьмеричном исчислении. Опиши формально, какой формат считается корректным, тогда можно будет о чем-то говорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 08:14 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton, прошу прощения, исходник не полный. В начало нужно добавить import re ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 08:17 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
авторЯ бы вообще делал без регулярки. 1) убираем из строки все кроме цифр 2) если цифр 11 и начинается на 7 - не делаем ничего 3) если цифр 11 и начинается на 8 - заменяем 8 на 7 4) если цифр 10, то добавляем спереди 7 5) иначе ошибка. Вот кстати да. Замечательное решение. На кой черт проверять всякие дефисы и прочие блажи, которые сделаны для читаемости и или запоминаемости человеком, если по тому же телефону идет тупой дозвон по набору циферок. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 08:35 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
авторЯ вообще - не знаю python. Так. Посмотрел названия строковых функций и как делать foreach. Кто знает что за херня? mayton, так вроде нет ошибки text.find("+",1) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 08:36 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat mayton Саму регулярку что писал автор я еще не смотрел. Я бы вообще делал без регулярки. 1) убираем из строки все кроме цифр 2) если цифр 11 и начинается на 7 - не делаем ничего 3) если цифр 11 и начинается на 8 - заменяем 8 на 7 4) если цифр 10, то добавляем спереди 7 5) иначе ошибка. у меня так и сделано. Только код страны ($cn) не разбирается, потому что для РФ. Но в целом, всё что левее 10 цифр - это код страны. Либо придётся ловить дефисы, если код города по длине не 3... Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
непонятно только, а это как: авторЯ бы вообще делал без регулярки. 1) убираем из строки все кроме цифр БЕЗ регулярки? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 10:24 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Соглашусь, что для проверки номера регулярки можно использовать минимально. Думаю, при они будут уместнее для поиска номеров в тексте. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 11:07 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 непонятно только, а это как: авторЯ бы вообще делал без регулярки. 1) убираем из строки все кроме цифр БЕЗ регулярки? Ну, именно это можно и регуляркой, а можно и без неё. Не знаю, как в питоне, но в шарпе без регулярки это можно как-нибудь так: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 13:20 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
По поводу этого выражения и моих претензий. Код: sql 1.
Существуют метрики сложности кода. Они оценивают количество циклов и ветвлений и количество уникальных сущностей типа переменная или функция. Это не для регулярок а для простых императивных языков где есть if-else-switch-while-for-dowhile...e.t.c Они также оценивают мозговые усилия человека по анализу или прочтению кода. В данном конкретном случае - компактность записи регулярки в 1 строку - это некий самообман. Здесь мы используя квантовую механику регулярок сжали целый алгоритм парсера и описали в строке. И это есть проблема. На самом деле программисту удобно изучать код описаный короткими записями с отступами (эдакий себе Haskell/Lisp/Python style) при котором вложение описывается как глубина отступа от края листа. Изучать - же это выражение - сложно. Нам как-бы хочется вставить туда перенос. Я обычно добавляю смысловые метки наподобие. Код: sql 1.
и переводы строк после каждой группы с меткой. Это позволяет ориентироваться по смыслам. Писать-же 100% логики в регулярке - это как экспериментировать с brainfck. Оно работает - но разработчик тратит больше ценных человеко-часов на анализ проблем впоследствии. И это та причина по которой Perl исходники обычно non-supportable и умирают будучи вытесняемыми более простыми и понятными языками в сегменте веба например. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 13:38 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#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 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat По-моему, таких уже нет. А маленьких населённых пунктов - много. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 13:50 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 только они медленные С точки зрения О(ххх) быстрее чем уже откомпилированная "классическая" регулярка (которая компилится в DFA) мало что может быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 13:52 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Basil A. Sidorov fkthat По-моему, таких уже нет. А маленьких населённых пунктов - много. Вместе с кодом города все равно будет ровно 10 цифр. Т.ч. тут еще вопрос выбора города, в случае если всего цифр (без кода страны или восьмерки) не 10. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 13:55 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Вместо минусов могут быть пробел, а то и не один. Кроме этого, пробел может быть в любом месте, например 901 12 12 12 7 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 14:15 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Aklin Вместо минусов А, кстати, еще вместо минуса может быть дефис и два разных вида тире - это все четыре разных символа. И вообще, тот минус, что на клавиатуре, это вовсе даже и не минус, а дефис. :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 14:35 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
softwarer mayton Регулярка которая проверяет email где-то была опубликована и она была размером с лист А4 текста. Это мать ево unsupportable. Или надо быть экспертом. Для начала это вопрос формата. Если записывать регулярку в стиле brainfuck - понятно, она может быть непроста в поддержке. С другой стороны, их поддержка требуется очень редко. Но никто не мешает сделать структурированную форму записи регулярок, хоть тот же XML для любителей. Со всеми атрибутами и комментариями. А сгенерить по xml строку итогового выражения - ну совершенно не сложно. да сами регулярки позволяют пробелы вставлять, если указан /x можно хоть так писать: Код: php 1. 2. 3.
Basil A. Sidorov fkthat По-моему, таких уже нет. А маленьких населённых пунктов - много. это всё через форму решается - она задаёт формат ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 14:46 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Регулярка которая проверяет email где-то была опубликована и она была размером с лист А4 текста. это если там utf-8 учитывать (нуевонафиг) а ascii довольно простой: /^([-a-z0-9A-Z.,:_!]{1,99}@[-a-z0-9A-Z.]{1,99}\.[a-z0-9A-Z]{2,15})$/ ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 14:48 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
mayton Я не знаю Python и не использую vs code. Я просто проверил в repl реакцию python на эскейпинг в конце. И все что я писал - не имеет отношения к verbose. там же в коробке с вербосом и комментирование - выше см скрин документации я тоже питон не знаю, просто изучаю регулярки, надо было на чем то изучать, я на питоне изучаю точне, выбрал питон для обработки текстов регулярками ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 14:51 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 mayton Регулярка которая проверяет email где-то была опубликована и она была размером с лист А4 текста. это если там utf-8 учитывать а ascii довольно простой: /^([-a-z0-9A-Z.,:_!]{1,99}@[-a-z0-9A-Z.]{1,99}\.[a-z0-9A-Z]{2,15})$/ Вовсе нет. Просто формат типа "fkthat@fake.io", к которому все привыкли, это только один из стапятисот разновидностей и вариаций. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 14:53 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat tip78 только они медленные С точки зрения О(ххх) быстрее чем уже откомпилированная "классическая" регулярка (которая компилится в DFA) мало что может быть. std::regex с этим поспорит ) но даже если это boost::regex, ему всё ещё надо искать текст если вместо регулярки можно обойтись одним str.substr(), то должно быть быстрее а потом, опять же, PVS-studio... у него есть статья, как регулярки невозможно юзать в его продукте, потому что жёстко сосут ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 14:54 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat tip78 пропущено... это если там utf-8 учитывать а ascii довольно простой: /^([-a-z0-9A-Z.,:_!]{1,99}@[-a-z0-9A-Z.]{1,99}\.[a-z0-9A-Z]{2,15})$/ Вовсе нет. Просто формат типа "fkthat@fake.io", к которому все привыкли, это только один из стапятисот разновидностей и вариаций. ну и какую из этих вариаций не поймает моя регулярка? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 14:57 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 это если там utf-8 учитывать (нуевонафиг) а ascii довольно простой: /^([-a-z0-9A-Z.,:_!]{1,99}@[-a-z0-9A-Z.]{1,99}\.[a-z0-9A-Z]{2,15})$/ За регулярки, проверяющие емейл, нужно убивать. В том числе за эту. Как и вообще за верификацию емейла. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 15:04 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
что-то новенькое... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 15:21 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 ну и какую из этих вариаций не поймает моя регулярка? Можешь проверить на этом: https://en.wikipedia.org/wiki/Email_address#Examples Я уже даже не говорю про форматы типа "foo!bar!baz!fkthat" (хоть и устаревший, но, как ни странно, вполне валидный с т.з. стандартов e-mail). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 15:36 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat Dima T есть еще маленькие города с пятизначными номерами По-моему, таких уже нет. У нас, например, еще при царе горохе четвертую цифру кода города превратили в первую цифру номера. Я уверен, что это делается какой-нибудь простейшей перенастройкой АТС. Полно пятизначных, вот например Воркута http://воркута.рф/contact/ ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 15:38 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
softwarer За регулярки, проверяющие емейл, нужно убивать. В том числе за эту. Как и вообще за верификацию емейла. Я уже писал выше, что единственная реальная верификация (хоть почты, хоть телефона) это отправка запроса на подтверждение. И вообще с любыми верификациями можно попасть впросак. Обидно ведь будет, допустим, потерять кастомера на стопятьсот лямов денег из-за того, что у него номер телефона алжирский, или фамилия всего из одной буквы. :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 15:50 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat tip78 ну и какую из этих вариаций не поймает моя регулярка? Можешь проверить на этом: https://en.wikipedia.org/wiki/Email_address#Examples я таких пересмотрел штук 5 разных источников всё пропустит, кроме: admin@mailserver1 "" '' () - нефиг им делать в адресе, как и + Я уже даже не говорю про форматы типа "foo!bar!baz!fkthat" (хоть и устаревший, но, как ни странно, вполне валидный с т.з. стандартов e-mail). tip78 [-a-z0-9A-Z.,:_ ! ]{1,99} ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 16:27 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat softwarer За регулярки, проверяющие емейл, нужно убивать. В том числе за эту. Как и вообще за верификацию емейла. Я уже писал выше, что единственная реальная верификация (хоть почты, хоть телефона) это отправка запроса на подтверждение. а если он неправильно написал адрес? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 16:27 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 "" '' () - нефиг им делать в адресе, как и + Потому что ты так решил? :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 16:35 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat Обидно ведь будет, допустим, потерять кастомера на стопятьсот лямов денег из-за того, что у него номер телефона алжирский, или фамилия всего из одной буквы. :)) Потерять кастомера неприятно, но обычно всё же терпимо - их много (а где мало - там дурью не маются). А вот кастомеру, когда он потратил до фига времени и сил, и не может дойти до конца из-за того, что кривая поделка какого-то кретина ругается ему на нормальный рабочий емейл... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 17:20 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat tip78 "" '' () - нефиг им делать в адресе, как и + Потому что ты так решил? :)) прикинь? Там их единицы таких. Которых ещё не обломали на других ресурсах. а кто ещё будет решать, RFC штоль? ну привет регулярки размером с A4 там и utf8, и домены без точек, и вообще всё что хош ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 17:46 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
softwarer А вот кастомеру, когда он потратил до фига времени и сил, и не может дойти до конца из-за того, что кривая поделка какого-то кретина ругается ему на нормальный рабочий емейл... Ну так вот я о том и говорю - проверки надо делать по минимуму, да и вообще формы сами тоже. Для меня идеальная регистрация (если не используем сторонний Open ID) это ввести просто свой е-мейл. И все. Пароль потом сгенерить и на этот мейл выслать. Не понравится пользователю пароль - сам потом в профиле поменяет. А то регулярно куда-нибудь заходишь, а там чтобы зарегаться нужно 84 обязательных поля на шести пошаговых страницах заполнять ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 18:07 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat Вместе с кодом города все равно будет ровно 10 цифр. Именно поэтому и существует запись: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 18:47 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat tip78 только они медленные С точки зрения О(ххх) быстрее чем уже откомпилированная "классическая" регулярка (которая компилится в DFA) мало что может быть. Плодить левые сущности с выделением памяти под них это быстрее чем пройтись по массиву символов конечным автоматом? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 20:45 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Dima T Плодить левые сущности с выделением памяти под них это быстрее чем пройтись по массиву символов конечным автоматом? Регулярка это как бы и есть конечный автомат. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 21:10 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
перебор ячеек памяти подряд - это самое быстрое, что вообще существует ничего быстрее не было, нет и на таких процессорах уже не будет. а вот регулярки на О(1) не тянут. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 01:26 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 перебор ячеек памяти подряд - это самое быстрое, что вообще существует ничего быстрее не было, нет и на таких процессорах уже не будет. а вот регулярки на О(1) не тянут. С каких пор перебор ячеек памяти стал O(1)? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 01:41 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat Basil A. Sidorov пропущено... Пять цифр в (локальном) номере - норма для маленьких населённых пунктов. А маленьких населённых пунктов - много. Вместе с кодом города все равно будет ровно 10 цифр. Т.ч. тут еще вопрос выбора города, в случае если всего цифр (без кода страны или восьмерки) не 10. Стран в мире несколько больше десяти, т.е. у большинства стран двух- и трехзначные коды, напр., у Польши (48), Украины (380) и др. Т.е. цифр может быть до 12 при записи в международном формате. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 09:38 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Ы2 Т.е. цифр может быть до 12 при записи в международном формате. До 15. "Вместе с кодом города (или оператора) 10" это я подразумевал РФ. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 10:32 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat tip78 перебор ячеек памяти подряд - это самое быстрое, что вообще существует ничего быстрее не было, нет и на таких процессорах уже не будет. а вот регулярки на О(1) не тянут. С каких пор перебор ячеек памяти стал O(1)? тестировал? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 11:19 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
первое, что нужно сделать, это убрать все ненужные символы, типа пробелов, скороб и прочей фигни и оставить только цифры, а потом уже отталкивать от них, как по мне, номер стоит парсить с конца в начало, так как номер 2-50-12 в каком-нибудь Зажопнски вполне нормальное явление ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 11:20 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
ничего, скоро всем на лбу номер набьют, по нему и будем звонить ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 11:23 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 тестировал? Если ты всех научишь, как N ячеек памяти перебирать за O(1), то тебе тьюринговскую премию надо давать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 11:46 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
нет, я про тест между регуляркой и перебором ты же топишь за то, что скомпилированная регулярка быстрее всех ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 14:46 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
линейный последовательный перебор массива - это самая кеш-дружественная фишка она и O(1) может задвинуть в некоторых случаях (например, бинарные деревья на базе heap имеют много кеш-мисс) а вот у регекспов много нюансов ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 15:00 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 скомпилированная регулярка быстрее всех Я такого нигде не говорил. Это как раз ты сморозил ересь про перебор ячеек за константное время. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 15:14 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat, вы не совсем правы, к примеру, у меня есть массив на 100 ячеек памяти, размер массив константный. с точки зрения оптимизации сумму этого массив я буду получать за константное время O(1), а не за линейное O(n), так как размер моего массив постоянные (константный). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 17:41 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat tip78 скомпилированная регулярка быстрее всех Я такого нигде не говорил. Это как раз ты сморозил ересь про перебор ячеек за константное время. пфф fkthat tip78 только они медленные С точки зрения О(ххх) быстрее чем уже откомпилированная "классическая" регулярка (которая компилится в DFA) мало что может быть . ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 18:25 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Roman Mejtes у меня есть массив на 100 ячеек памяти, размер массив константный. Задача о рюкзаке с константным числом предметов тоже, как бы, решается за константное время. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 18:55 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Рюкзак - это семейство задач с разными условиями наполнения. Поэтому я-бы уточнил. И по поводу константного времени - тоже надо уточнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 19:08 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Roman Mejtes у меня есть массив на 100 ячеек памяти, размер массив константный. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 19:17 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 пфф Ты действительно не различаешь разную разницу между "мало что может быть" и "быть вообще не может"? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 20:19 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
fkthat tip78 пфф Ты действительно не различаешь разную разницу между "мало что может быть" и "быть вообще не может"? в некоторых случаях её вообще нет а учитывая, что это лишь твои "фантазии на тему", тут можно и не придираться к словам для меня оба варианта одинаковая ересь. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 20:22 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Roman Mejtes у меня есть массив на 100 ячеек памяти, размер массив константный. кстати, можно и подискутировать авторЭта форма записи используется для объяснения того, как некий алгоритм ведет себя при определенном количестве элементов, над которыми совершается операция. Это показывает нам, насколько быстро исполняется команда в зависимости от числа элементов в структуре данных, с которой мы работаем. скомпилированный регексп всё равно зависит от входной строки она же не индексированная, значит никаких O(1) там никогда не будет log(N) тоже нет, там должен быть такой же последовательный перебор или я что-то не знаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 20:25 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 кстати, можно и подискутировать Определение не может быть предметом дискуссии - оно или принимается или отвергается. O-нотация определяет асимптотическое поведение алгоритма. O(1) вообще не имеет физического смысла по той простой причине, что доступ к ячейке даже к статической памяти требует ненулевого времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 20:31 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 там должен быть такой же последовательный перебор Там конечный автомат, т.е. O(N). Быстрый поиск подстроки в строке тоже можно делать через DFA (напр. алгоритм Ахо-Корасик), впрочем и другие нормальные алгоритмы поиска подстроки тоже линейной сложности. Что в каком-то конкретном сценарии будет быстрее зависит от входных данных и прочих условий. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 21:58 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
какой бы там поиск не был, это же всё равно будет перебор ячеек памяти, разве нет? ничего же другого там в принципе быть не может так вот, последовательный перебор кэшированной памяти - самое быстрое, что у нас есть. А вот регексп - это уже алгоритм. Хотя, скорее всего, там в итоге тоже будет что-то сродни простого сравнения. Так я это вижу ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 23:06 |
|
Форматирование номера телефона регулярками на питоне
|
|||
---|---|---|---|
#18+
tip78 да сами регулярки позволяют пробелы вставлять, если указан /x можно хоть так писать: Код: php 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2020, 13:58 |
|
|
start [/forum/topic.php?all=1&fid=16&tid=1339709]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
94ms |
get tp. blocked users: |
2ms |
others: | 242ms |
total: | 429ms |
0 / 0 |