如何调用最深括号python

时间:2018-11-28 01:54:33

标签: printing

我正在尝试做这个例子:

sentence="{My name is {Adam} and I don't work here}"

结果应为'Adam'

所以我要说的是,无论是否存在许多括号,我希望结果显示最后一个闭合括号的值

2 个答案:

答案 0 :(得分:0)

您不能只为这样的字符串编制索引...最好的方法是使用一个聪明的正则表达式:

>>> import re
>>> re.search(r'{[^{}]*}', "{My name is {Adam} and I don't work here}").group()
'{Adam}'

此正则表达式模式实质上是搜索其中没有字符{}{的每组}

答案 1 :(得分:0)

您的问题尚不清楚,但是如果在任何水平上都只能有一组外部括号(即"{My name} {is {Adam}}""{My {name} is {Adam}}"是无效的输入),则可以利用这一事实你想要的是句子中的最后一个大括号。

def deepest(sentence):
     intermediate = sentence.rpartition("{")[-1]
     return intermediate[:intermediate.index("}")]

deepest("{My name is {Adam} and I don't work here}")
# 'Adam'
deepest("{Someone {set us {{up} the bomb}!}}")
# 'up'

尽管regex可能会慢得多,但是regex的答案也做出了这样的假设。如果可能有多个外部括号,请使您的问题更清楚。