考虑一下我有以下字符串:
>>> 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()
进行拆分,同时保留“方括号”项目。
那么,从给定的字符串中获取所需列表的最直接的方法是什么?
答案 0 :(得分:1)
您可以使用与括号中的字符串或非空格字符匹配的替换模式:
re.findall(r'\[.*?]|\S+', aa)