2014-11-12 2 views
0

Как разбить строку, содержащую «знаки знака», но не пробелы? Например:Как разбить строку, содержащую знаки знака

aString = '1+20*40-3' 

Я хочу выход быть:

['1', '+', '20', '*', '40', '-', '3'] 

Я попытался это:

aString.split('+' and '*' and '-') 

, но это не сработало.

+3

Время, чтобы узнать о регулярных выражениях. –

+0

Обратите внимание: '('+' и '*' и '-') == '-''; 'split' * исключает * персонажа, который вы разделили на выходе; и вам нужно выяснить, как выразить, что '' + ''и'' 2'' являются отдельными, но '' 2'' и ''0'' должны оставаться вместе. – jonrsharpe

ответ

3

Вы можете использовать регулярное выражение для выполнения этой задачи в python. Код будет:

import re 
aString= '1+20*40-3' 
print re.findall('[+-/*]|\d+',aString) 

выход:

>>> 
    ['1', '+', '20', '*', '40', '-', '3'] 

См ДОКУМЕНТАЦИЯ here

+0

Отлично, спасибо человеку. Что делать, если я хочу добавить экспонента в строку (**)? Например, aSting = '1 ** 2' – user4245086

Смежные вопросы