gpt4 book ai didi

groovy - 如何找到内嵌套的内容?

转载 作者:行者123 更新时间:2023-12-02 08:25:55 25 4
gpt4 key购买 nike

假设我有一个像这样的字符串:

string = [+++[>>[--]]]abced

现在我想要一种返回包含以下内容的列表:[[--],[>>],[+++]]。这是最深的 [ 嵌套的内容,然后是其他嵌套。我想出了这样的解决方案:

def string = "[+++[>>[--]]]"
loop = []
temp = []
string.each {
bool = false
if(it == "["){
temp = []
bool = true
}
else if( it != "]")
temp << it
if(bool)
loop << temp

}
println loop.reverse()

但这确实将最后一个 ] 之后的 abced 字符串放入结果中!但我想要的只是 [[--],[>>],[+++]]

有什么绝妙的方法可以解决这个问题吗?

最佳答案

如果您不介意使用递归,则可以使用它

def sub(s , list){
if(!s.contains('[') && !s.contains('['))
return list
def clipped = s.substring(s.lastIndexOf('[')+1, s.indexOf(']'))
list.add(clipped)
s = s - "[$clipped]"
sub(s , list)
}

调用

sub('''[+++[>>[--]]]abced''' , [])

返回大括号内所有子部分的列表。

['--', '>>', '+++']

关于groovy - 如何找到内嵌套的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12066015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com