Форум сайта python.su
И еще подскажите плиз как сделать так, чтобы пробелы оставались только у первого элемента списка, например: “ 1 2 3”=>
Офлайн
r3m1xМожно вообще разбить по цифрам и со всеми идущими перед ними whitespace'ами:
Здравствуйте! Например есть строка “1 2 3”, используя split(“ ”), я получаю , а надо . Подскажите пожалуйста как сделать.
import re
for s in ['1 2 3', ' 1 2 3', ' 1 2 3', '1 2 3', '1 2 3', '123', '\t\n1\n2\t3']:
print '~' * 25
print '"%s"' % s
print re.findall(r'\s{0,}\d', s)
~~~~~~~~~~~~~~~~~~~~~~~~~
"1 2 3"
['1', ' 2', ' 3']
~~~~~~~~~~~~~~~~~~~~~~~~~
" 1 2 3"
[' 1', ' 2', ' 3']
~~~~~~~~~~~~~~~~~~~~~~~~~
" 1 2 3"
[' 1', ' 2', ' 3']
~~~~~~~~~~~~~~~~~~~~~~~~~
"1 2 3"
['1', ' 2', ' 3']
~~~~~~~~~~~~~~~~~~~~~~~~~
"1 2 3"
['1', ' 2', ' 3']
~~~~~~~~~~~~~~~~~~~~~~~~~
"123"
['1', '2', '3']
~~~~~~~~~~~~~~~~~~~~~~~~~
"
1
2 3"
['\t\n1', '\n2', '\t3']
Отредактировано (Сен. 24, 2011 13:19:01)
Офлайн
usmix
Цифры это только для примера… А вообще задача уже немного изменилась ) Нужно чтобы пробелы оставались только у первого элемента списка, например:
“ f g h”=>
Отредактировано (Сен. 24, 2011 18:27:20)
Офлайн
r3m1xДолжен прокатить: :)
usmix
Цифры это только для примера… А вообще задача уже немного изменилась ) Нужно чтобы пробелы оставались только у первого элемента списка, например:
“ f g h”=>
re.findall(r'^\s+\S+|\S+', s)
Офлайн
Прокатило ) Спасибо.
А вот до чего я додумался ))
text = " a b c"
a = re.compile(r'\s+\w+', re.U).match(text).group()
arr = [a]
arr += par.replace(a, '').split()
Отредактировано (Сен. 24, 2011 20:40:01)
Офлайн
r3m1xПожалуйста!
Прокатило ) Спасибо.
r3m1xМолодец! Всегда можно реализовать несколькими способами… проблема только одна - выбрать оптимальный вариант!
А вот до чего я додумался ))…
r3m1xУдачи!
Пошел учить регуляторные выражения )
Офлайн