example_string = "name[0]['subName'][0][1]"
我想要 [ 和 ] 之间的子字符串和整数列表
结果是
[0, 'subName', 0, 1]
我相信 re.findall() 会起作用,但我不确定正则表达式是什么
请您参考如下方法:
re_results = re.findall("\[(.*?)\]",example_string) ...可能对您有用(假设您没有嵌套括号)...我怀疑您缺少的关键是使用贪婪匹配 "[.]"将匹配尽可能大,因此它将捕获从第一个左括号到最后一个右括号的所有内容作为单个匹配。 "[.?]"匹配尽可能少,因此每次匹配只有一对括号
(如果那是您真正想要的,您将需要手动转换为整数)
你可以做一些简单的事情,比如
def castIntOrDont(x):
try:
return int(x)
except ValueError:
return x.strip("'") #strip out the extra quotes on strings
print map(castIntOrDont,re_result) #list(map(...)) in py3
