Python照常在空格处拆分字符串,但保留某些包含空格的子字符串吗?

时间:2020-04-09 05:53:00

标签: python parsing split

考虑一下我有以下字符串:

>>> 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()进行拆分,同时保留“方括号”项目。

那么,从给定的字符串中获取所需列表的最直接的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用与括号中的字符串或非空格字符匹配的替换模式:

re.findall(r'\[.*?]|\S+', aa)