Python разделить строку на пробелы, как обычно, но сохранить некоторые подстроки, содержащие пробел? - PullRequest
1 голос
/ 09 апреля 2020

Предположим, у меня есть следующая строка:

>>> aa="63452 [  0] AAA BB CCC"

Если я сделаю обычный .split(), который разбивается на пробелы, я получу это:

>>> aa.split()
['63452', '[', '0]', 'AAA', 'BB', 'CCC']

Что бы я хотел чтобы получить вместо этого, этот список: ['63452', '[ 0]', 'AAA', 'BB', 'CCC']

По существу, вторая часть представляет собой строку, которая соответствует формату: открывающая квадратная скобка + нет или больше пробельных символов + нет или больше цифр + закрывающая квадратная скобка - который я могу сопоставить с этим регулярным выражением:

>>> import re
>>> re.findall(r'\[\s*\d*\]', aa)
['[  0]']

По сути, я сначала хотел бы идентифицировать элемент «квадратная скобка», а затем разделить, как обычно делает .split(), сохраняя «квадратную скобку» "item.

Итак, какой самый простой способ получить требуемый список из заданной строки?

1 Ответ

1 голос
/ 09 апреля 2020

Вы можете использовать шаблон чередования, который соответствует строке в скобках или непробельным символам:

re.findall(r'\[.*?]|\S+', aa)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...