我想获取方括号内的字符串,它以数组
的形式给出u16 arrayName_1[8][7]
我有python代码,可以找到1维数组并在squre括号内获取字符。
var = 'u16 arrayName_1[8]'
index = re.split('\[(.*?)\]', str(var))
index [0]将给出' u16 arrayName_1'。
index [1]将给出' 8'。
问题: 我想在2D数组的括号内获取字符串。我试过下面的代码,但这不是理想的结果。
var = u16 arrayName_1[8][7]
index= re.split('(\[.*\])$', str(var))
index [0]将给出' u16 arrayName_1'。
索引[1]将给出' [8] [7]'。这是错误的结果。
我希望输出如下:
index [1] =' 8'
索引[2] =' 7'
答案 0 :(得分:3)
您可以在re.findall
中使用自己的模式来获取[...]
中的所有内容:
import re
var = 'u16 arrayName_1[8][7]'
index = re.findall(r'\[(.*?)\]', var)
print(index) # => ['8', '7']
请参阅Python demo
要仅匹配内部数字,请使用\[([0-9]+)]
正则表达式。此外,您不必转义字符类之外的]
符号,您应该考虑使用原始字符串文字来定义正则表达式模式,以避免与未转义的反斜杠混淆。