Python:将字符串分成子串

时间:2013-05-13 22:28:07

标签: python

我有一堆数学表达式存储为字符串。这是一个简短的:

stringy = "((2+2)-(3+5)-6)"

我想把这个字符串分成一个列表,其中只包含每个“子括号短语”中的信息(我确信有更好的方法来表达它。)所以我的收益是:

['2+2','3+5']

关于如何做到这一点,我有几个想法,但我一直在遇到“好的,现在是什么”的问题。

例如:

for x in stringy:
    substring = stringy[stringy.find('('+1 : stringy.find(')')+1]
    stringlist.append(substring)

只是peachy返回2 + 2,但这就是它的范围,我完全是在如何通过其余的... ...

3 个答案:

答案 0 :(得分:2)

使用正则表达式的一种方法:

import re
stringy = "((2+2)-(3+5)-6)"
for exp in re.findall("\(([\s\d+*/-]+)\)", stringy):
    print exp 

<强>输出

2+2
3+5

答案 1 :(得分:1)

您可以使用如下的正则表达式:

import re

x = "((2+2)-(3+5)-6)"

re.findall(r"(?<=\()[0-9+/*-]+(?=\))", x)

结果:

['2+2', '3+5']

答案 2 :(得分:1)

正则表达式的答案和问题可以在类似的问题中找到:Regular Expression to match outer brackets