Форум сайта python.su
0
Решил поиграться-разбираться с этими демоническими выражениями.
Балуюсь с фильтрами и изменениями строк.
Когда у нас строка вида: ‘lalala 4’
Представить ее в виде: ‘lalala 10’ - не проблема
re.sub('\d+', '10', 'lalala 4')
import re import random zindex = 'lalla 2 blala 14 lfddf' numb = re.compile('\d+') subnum = [str(int(i)+random.randint(-5,5)) for i in numb.findall(zindex)]
Отредактировано Duck-Pagan (Авг. 8, 2012 11:27:38)
Офлайн
173
Duck-PaganНе совсем понятно, что такое subnum(0).
Но проблема с изменением строки возникает тут: ‘lalla 2 blala 14 lfddf’
- когда я хочу получить, например, такую строку: ‘lalla subnum(0) blala subnum(1) lfddf’
import re import itertools zindex = 'lalla 2 blala 14 lfddf' def position_tagger(start=0): counter = itertools.count(start) def wrapped(match): return str(counter.next()) return wrapped print re.sub('\d+', position_tagger(), zindex) # lalla 0 blala 1 lfddf
Отредактировано reclosedev (Авг. 8, 2012 12:13:46)
Офлайн
0
subnum - это list, содержащий цифры, полученные из строки. В коде ниже(выше). Просто квадратные скобки не отображаются - поэтому использовал круглые.
Модуль itertools - почитаю.
Отредактировано Duck-Pagan (Авг. 8, 2012 13:20:34)
Офлайн