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

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

Esper

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

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

vital

Больной Компом Детектед
29.01.2006
2 432
33
#2
ох мать моя женщина.
А просто найти все числа >99 AND <1000 никак?
 
E

Esper

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

Vlanib

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

Esper

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

Esper

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

hosm

* so what *
18.05.2009
2 442
6
#8
ммм... мб, лучше просмотреть с конца строки?
если не цифра - сразу удалять, если 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

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

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

Esper

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

Esper

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