Python 正则表达式,用于获取括号中的所有内容,包括括号

Python 正则表达式,用于获取括号中的所有内容,包括括号,python,regex,Python,Regex,我有一个字符串,我正试图创建一个正则表达式,以便提取括号内的所有内容。此类字符串的示例如下所示 [-At(A),+CarAt(B),-CarAt(A),-InCar] 我正在使用的当前正则表达式是re.search(r'\[.*?\]',string),但它只返回-At(A),-inbo,而不是-At(A),+CarAt(B),-CarAt(A),-inbo 我不知道为什么它与-At(A)中的一组括号匹配;我认为我的正则表达式可以工作,因为它可以匹配括号之间的所有内容 如何将所有内容都放在原始

我有一个字符串,我正试图创建一个正则表达式,以便提取括号内的所有内容。此类字符串的示例如下所示

[-At(A),+CarAt(B),-CarAt(A),-InCar]
我正在使用的当前正则表达式是
re.search(r'\[.*?\]',string)
,但它只返回
-At(A),-inbo
,而不是
-At(A),+CarAt(B),-CarAt(A),-inbo

我不知道为什么它与
-At(A)
中的一组括号匹配;我认为我的正则表达式可以工作,因为它可以匹配括号之间的所有内容


如何将所有内容都放在原始字符串的括号内?

您没有说您想要包含的成员,但我怀疑这是最终的结果

要做到这一点,我发现最好先将括号切掉或
.strip()
去掉,然后
.split()
在进行进一步验证之前获取这类字符串的成员

>>s=“[-At(A),+CarAt(B),-CarAt(A),-inconto]”
>>>s=s.strip(“[]”)
>>>
“-At(A),+K(B),-K(A),-Invo”
>>>值=s.split(',')
>>>价值观
['-At(A)',+CarAt(B)',-CarAt(A)',-envo']
使用正则表达式来验证其单个结果通常是非常困难的

  • 易于书写和解释
  • 与将无声地忽略不匹配的
    re.findall()
    相比,它更擅长突出显示不匹配
  • 在计算效率上(尽管可能不适用于您的情况)可能比尝试在单个步骤中执行操作要高得多()
>>重新导入
>>>RE|u wanted=RE.compile(r“[+-](在| Car|In){1,2}(\([A-Z]\))?”)
>>>全部((需要重新匹配(a)以匹配a中的值))
符合事实的

我认为问题在于问号。因为问号出现在量词后面时会使他们“懒惰”。 因此,尝试使用:

r'\[.*\]'

在您的问题中编辑一些最小的精确代码,以获得此结果。包括导入、使用要搜索的字符串初始化变量、打印结果并显示结果。没有问题?-“问题”是OP的手指有问题-需要一个