Форум сайта python.su
Здравствуйте! Например есть строка “1 2 3”, используя split(“ ”), я получаю , а надо . Подскажите пожалуйста как сделать.
Офлайн
Вызывай split() без аргументов:
>>> "1 2 3".split()
['1', '2', '3']
>>> import re
>>> re.split(r'\b\s', "1 2 3")
['1', '2', ' 3']
Отредактировано (Сен. 21, 2011 18:51:55)
Офлайн
Да, нужно сохранить пробелы. Большое спасибо )
Офлайн
>>> s = "1 2 3"
>>> s.split(' ', 2)
['1', '2', ' 3']
>>> tuple(s.split(' ', 2)[-1])
(' ', ' ', ' ', ' ', '3')
>>>
Офлайн
re.split(r'\b\s', "1 2 3")
s.split(' ', 2)
Отредактировано (Сен. 23, 2011 14:49:06)
Офлайн
p = re.compile(r'(?<=\b)\s', re.U)
ls = p.split(u" я у z")
for e in ls:
print "'%s'" % e
Офлайн
dimabest
Спасибо! Если не сложно объяните еще пожалуйста вот это: (r'(?<=\b)\s', re.U)
Офлайн
шутка :)
Шаблон менять не нужно, достаточно добавить флаг re.U
Читаем что означают \b \w \W и как флаг re.U меняет их поведение http://docs.python.org/library/re.html#re.U
Офлайн
r3m1xсделай .lstrip()
не работает если вначале пробелы, например: “ 1 2 3”.split(' ', 2) возвращает
Отредактировано (Сен. 24, 2011 07:06:18)
Офлайн
py.user.next
Как раз нужно
Офлайн