Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 17, 2012 23:28:05

TITANius
От:
Зарегистрирован: 2010-11-20
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярное выражение - разбивка на массив

Не могу придумать как разбить строку:

[13 28 22] Rebeca Storn normal armor buffer ishtar[13 28 24] Nianah expensive neuts[13 28 29] Nianah 77mil each[13 28 39] Rebeca Storn yes was about to say that[13 28 48] Captain Scarz ya but i cant use t2 medium neuts yet[13 28 49] RebecaStorn storyline neuts are too expensive[13 28 56] Rebeca Storn fit meta 4 then[13 29 14] Captain Scarz k[13 29 18] Nianah those 50W neuts
на массив

[13 28 22] Rebeca Storn normal armor buffer ishtar
[13 28 24] Nianah expensive neuts
[13 28 29] Nianah 77mil each
[13 28 39] Rebeca Storn yes was about to say that
[13 28 48] Captain Scarz ya but i cant use t2 medium neuts yet
[13 28 49] RebecaStorn storyline neuts are too expensive
[13 28 56] Rebeca Storn fit meta 4 then
[13 29 14] Captain Scarz k
[13 29 18] Nianah those 50W neuts

заранее благодарен



Отредактировано TITANius (Июнь 17, 2012 23:28:49)

Офлайн

#2 Июнь 17, 2012 23:35:44

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Регулярное выражение - разбивка на массив

re.sub('(\[.+?\])', lambda sub: '\n' + sub.group(1), s)

Если нужен именно список:
re.sub('(\[.+?\])', lambda sub: '\n' + sub.group(1), s).split('\n')

Или так:
result = []
for first_split in s.split('['):
    second_split = first_split.split(']')
    if second_split[0]:
        result.append('[' + second_split[0] + ']' + second_split[1])



Отредактировано fata1ex (Июнь 17, 2012 23:47:47)

Офлайн

#3 Июнь 18, 2012 00:57:55

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Регулярное выражение - разбивка на массив

Или так:

['[' + l for l in s.split('[') if l]
или так:
re.sub('\[', '\\n[', s).split('\n')[1:]



Отредактировано Ed (Июнь 18, 2012 01:02:51)

Офлайн

#4 Июнь 18, 2012 01:12:01

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Регулярное выражение - разбивка на массив

Ed, ты победил :(



Офлайн

#5 Июнь 18, 2012 02:31:34

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9732
Репутация: +  843  -
Профиль   Отправить e-mail  

Регулярное выражение - разбивка на массив

>>> import re
>>> 
>>> s = "[13 28 22] Rebeca Storn normal armor buffer ishtar[13 28 24] Nianah expensive neuts[13 28 29] Nianah 77mil each[13 28 39] Rebeca Storn yes was about to say that[13 28 48] Captain Scarz ya but i cant use t2 medium neuts yet[13 28 49] RebecaStorn storyline neuts are too expensive[13 28 56] Rebeca Storn fit meta 4 then[13 29 14] Captain Scarz k[13 29 18] Nianah those 50W neuts"
>>> 
>>> lst = re.findall(r'\[\d+ \d+ \d+\][^[]+', s)
>>> 
>>> print(*lst, sep='\n')
[13 28 22] Rebeca Storn normal armor buffer ishtar
[13 28 24] Nianah expensive neuts
[13 28 29] Nianah 77mil each
[13 28 39] Rebeca Storn yes was about to say that
[13 28 48] Captain Scarz ya but i cant use t2 medium neuts yet
[13 28 49] RebecaStorn storyline neuts are too expensive
[13 28 56] Rebeca Storn fit meta 4 then
[13 29 14] Captain Scarz k
[13 29 18] Nianah those 50W neuts
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version