Python内部插入字符串解析

Python内部插入字符串解析,python,string,parsing,parentheses,Python,String,Parsing,Parentheses,好,, 当前,如果给定如下字符串: A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5,(F:0.6,G:0.7)H:0.8 我用的是: child = Pstring[Pstring.find('(')+1:Pstring.find(')')] 遍历字符串,打印出内括号,并将其分配给变量“child” 现在,我的问题是,我怎样才能做到同样的: W:1.0,X:1.1(A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5,(F:0.6,G:0.7)H:0.8)Y:0.9

好,, 当前,如果给定如下字符串:

A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5,(F:0.6,G:0.7)H:0.8
我用的是:

child = Pstring[Pstring.find('(')+1:Pstring.find(')')]
遍历字符串,打印出内括号,并将其分配给变量“child”

现在,我的问题是,我怎样才能做到同样的:

W:1.0,X:1.1(A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5,(F:0.6,G:0.7)H:0.8)Y:0.9  
它只包含一个外圆括号,表示所有东西(除了W和X)都是Y的子元素

我当前获得的“child”输出为:

A:0.1,B:0.2,(C:0.3,D:0.4
然而,我希望代码首先通过外部括号进行解析,然后首先获取内部括号,最后处理外部括号


谢谢

如果只需要内括号的内容,可以将
re.findall()
与以下正则表达式一起使用:

\(([^()]*)\)
例如:

>>> import re
>>> s = 'W:1.0,X:1.1(A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5,(F:0.6,G:0.7)H:0.8)Y:0.9'
>>> re.findall(r'\(([^()]*)\)', s)
['C:0.3,D:0.4', 'F:0.6,G:0.7']
说明:

\(        # literal '('
(         # start capturing group
  [^()]*    # any characters except '(' and ')', any number
)         # end capturing group
\)        # literal ')'

re.findall()
为每个匹配返回捕获组的内容。

hmm,我试图将输出保留为字符串,而不是列表,因为我需要在程序的其余部分进一步拆分和切分。是否有一个从字符串后面搜索的.find函数?@Sean结果是字符串列表,你说你想遍历这个字符串,所以你可以遍历这个列表,得到每个匹配的部分作为一个字符串。如果这不是您需要的,请编辑您的问题以提供您期望的输出。