【问题标题】:Get string inside brackets获取括号内的字符串
【发布时间】:2016-08-09 08:02:35
【问题描述】:

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

u16 arrayName_1[8][7]

我有 python 代码,它可以找到一维数组并在方括号内获取字符。

var = 'u16 arrayName_1[8]'
index = re.split('\[(.*?)\]', str(var))

index[0] 将给出 'u16 arrayName_1'。

index[1] 将给出 '8'。

问题: 我想在二维数组的括号内获取字符串。我尝试了下面的代码,但不是想要的结果。

var = u16 arrayName_1[8][7]
index= re.split('(\[.*\])$', str(var))

index[0] 将给出 'u16 arrayName_1'。

index[1] 将给出“[8][7]”。这是错误的结果。

我想要这样的输出:

索引[1] = '8'

索引[2] = '7'

【问题讨论】:

标签: python regex string


【解决方案1】:

您可以在re.findall 中使用自己的模式来获取[...] 中的所有内容:

import re
var = 'u16 arrayName_1[8][7]'
index = re.findall(r'\[(.*?)\]', var)
print(index) # => ['8', '7']

Python demo

要仅匹配内部数字,请使用\[([0-9]+)] 正则表达式。此外,您不必在字符类之外转义 ] 符号,您应该考虑使用原始字符串文字来定义正则表达式模式以避免与未转义的反斜杠混淆。

【讨论】:

  • 注意:如果索引本身有索引,这不起作用,如foo[bar[1]]。 (这不是要求,只是想指出限制...)
  • 是的,所以我也建议\[([0-9]+)]
猜你喜欢
  • 2012-06-30
  • 2012-01-24
  • 1970-01-01
  • 1970-01-01
  • 2016-05-04
  • 2016-12-24
  • 2016-08-19
  • 2021-10-15
  • 1970-01-01
相关资源
最近更新 更多