2015-10-23 3 views
0

Я хочу разделить строку и хранить маркеры с метриками в списке. Что я имею в виду, у меня есть строка, как это:Python: разделять строку и хранить токены с метриками в списке

s = "hi,my+dear-friend*1" 

И я хочу получить:

["hi", ",", "my", "+", "dear", "-", "friend", "*", "1"] 
+1

Ваше определение разделителя? Есть ли список принятых разделителей? –

+0

У меня есть разделители списков «+ - * /, =» и строка с текстом, и я хочу получить список токенов. Я хочу сделать что-то вроде класса StringTokenizer в Java. – Nikitka

ответ

3

Вы можете сделать это с помощью регулярного выражения:

import re 

s = "hi,my+dear-friend*1" 
re.findall(r"\w+|\W",s) 

Выход:

['hi', ',', 'my', '+', 'dear', '-', 'friend', '*', '1'] 
3

Вам нужно использовать группу захвата с регулярным выражением.

>>> import re 
>>> s = "hi,my+dear-friend*1" 
>>> re.split(r'(\W)', s) 
['hi', ',', 'my', '+', 'dear', '-', 'friend', '*', '1'] 
Смежные вопросы