考虑我有以下字符串:
>>> 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)