Python内括号字符串解析

标签 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  

它只是包含一个外部括号来表明所有内容(除了 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() 返回每个匹配的捕获组的内容。

关于Python内括号字符串解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369317/

相关文章:

python - sklearn standardscaler 结果与手动结果不同

python - 为什么 "eggsecutable"搜索 __main__

iphone - 维基百科作为我的 iOS 应用程序的一部分

python - 我的 Python Set() 中的某些元素最终变成了十六进制

python - Elasticsearch [PUT] 错误

python - 为什么将列表初始化为空而不是具有预定大小是 Pythonic 的?

c - 定位给定文件中的所有子字符串实例

python - 用python对象中的数字替换字母

python - Zerorpc:如何将字符串数据从Python转换为 Node

Java - 按通用长度和前缀从字符串中提取文本