• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

Esper

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

Код:
 'здесь был плохой код )
 
V

vital

ох мать моя женщина.
А просто найти все числа >99 AND <1000 никак?
 
E

Esper

запись типа 031 или 004 тоже следует рассматривать как трехзначное число... :blush:
 
V

Vlanib

А эти числа разделены как-то? Или могут быть любые символы справа слева без пробелов?
 
E

Esper

Могут быть любые символы... И с пробелами, и без...
 
E

Esper

Например: dfjg234nd55846/. hfhfпр оаппа567...
и результатом соответственно должно быть: 234567
 
H

hosm

ммм... мб, лучше просмотреть с конца строки?
если не цифра - сразу удалять, если 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) - начало строки).

Добавлено: кстати, в чем глубокий смысл
 
E

Esper

:wacko: смысл понятен...а вот его реализация... :blush:

;) смысл в r=r, видимо, настолько глубоко, что даже мне не открывается...)))))
 
E

Esper

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

и как "зафиксировать" программно тот момент, когда нужно проверять длину строки из цифр? т.е момент перехода в исходной строке от группы цифр к другим символам...
 
E

Esper

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!