• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Удаление из текста всех символов, кроме трехзначных чисел.

  • Автор темы Автор темы Esper
  • Дата начала Дата начала
E

Esper

Нужно удалить из текста символы, не являющиеся трехзначными числами.
Вот мой вариант, но цикл проходит только один раз. Можете ли подсказать, в чем ошибка?(кроме тупости самого способа решения :blush: ) И можно ли довести код до рабочего состояния...

Код:
 'здесь был плохой код )
 
ох мать моя женщина.
А просто найти все числа >99 AND <1000 никак?
 
запись типа 031 или 004 тоже следует рассматривать как трехзначное число... :blush:
 
А эти числа разделены как-то? Или могут быть любые символы справа слева без пробелов?
 
Могут быть любые символы... И с пробелами, и без...
 
Например: dfjg234nd55846/. hfhfпр оаппа567...
и результатом соответственно должно быть: 234567
 
ммм... мб, лучше просмотреть с конца строки?
если не цифра - сразу удалять, если s(n), т.е. n-й символ цифра - просмотреть символы впереди (если s(n), s(n-1), s(n-2) - цифры, а n-2 = 1 (начало строки) или s(n-3) - не цифра - оставляем, иначе убиваем всё идущие подряд цифры (s(n)...s(i), i<=n), затем и идущие перед ними нечисловые (s(i-1)...) до тех пор, пока не встретится цифра или строка не закончится.
Встретили цифру s(k) - проверяем символы впереди, как описано выше - (оставляем, если s(k), s(k-1), s(k-2) - цифры, а перед ним не цифра или s(k-2) - начало строки).

Добавлено: кстати, в чем глубокий смысл
 
:wacko: смысл понятен...а вот его реализация... :blush:

;) смысл в r=r, видимо, настолько глубоко, что даже мне не открывается...)))))
 
циклом шагаете по строке, если не цифра выкинуть, если цифра складируете, проверяете, если длина больше 3 выбросить, если 3 сложить в закрома.

и как "зафиксировать" программно тот момент, когда нужно проверять длину строки из цифр? т.е момент перехода в исходной строке от группы цифр к другим символам...
 
Усё, задача решена... Cделала по-своему, изменив свой цикл при помощи like... )) Но всё равно спасибо всем за участие :(
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab