2016-01-22 3 views
1

У меня есть строка, которая выглядит следующим образом:Условно Разбиение строки в Python

Increase (decrease)  1,334  ( 2,921)  2,797 

Я хотел бы разделить строку, чтобы выглядеть следующим образом:

['Increase (decrease)', '1,334', '(2,921)', '2,797'] 

Я пробовал:

item=re.split(r'\s{3,}', strg) 

Но очевидно, что это дает:

['Increase (decrease)', '1,334', '(', '2,921)', '2,797'] 

Любая помощь будет принята с благодарностью.

+0

Try 'г '\ s {4}' '? –

+0

Но почему вы хотите разделиться так? Каково правило? Я не знаю, какой результат должен быть, например, для «abc (123) (a a)». Просто объясните правило –

ответ

2

Я хотел бы удалить все пробелы после открывающей скобкой, а затем разделить:

>>> re.split(r'\s{3,}', re.sub(r"(?<=\()\s+", "", s)) 
['Increase (decrease)', '1,334', '(2,921)', '2,797'] 

Обратите внимание, что (?<=\() является positive lookbehind.

+0

Это именно то, что я искал. Благодарю. –

1

Вы можете заменить пробелы между скобкой и затем раскол:

>>> re.split(r'\s{3,}',re.sub(r'(?<=\()\s+','',s)) 
['Increase (decrease)', '1,334', '(2,921)', '2,797'] 
Смежные вопросы