在括号内

时间:2016-08-09 08:02:36

标签: python regex string

我想获取方括号内的字符串,它以数组

的形式给出
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'

1 个答案:

答案 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]+)]正则表达式。此外,您不必转义字符类之外的]符号,您应该考虑使用原始字符串文字来定义正则表达式模式,以避免与未转义的反斜杠混淆。