Python像往常一样在空格处拆分字符串,但保留某些包含空格的子字符串



考虑我有以下字符串:

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

如果我做通常的.split(),它在空白处分裂,我得到的是:

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

我想获得的是这个列表:['63452', '[ 0]', 'AAA', 'BB', 'CCC']

基本上,第二部分是一个匹配格式的字符串:左方括号+没有或更多空白字符+没有或多个数字+右方括号-我可以用这个regex:来匹配

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

从本质上讲,我首先想识别"方括号"项目,然后像.split()通常做的那样进行拆分,同时保留"方括号"项目。

那么,从给定的字符串中获得所需列表的最简单方法是什么呢?

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

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

最新更新