输入是表示元素列表的字符串。
列表被定义为一个开放的卷曲{
,后跟 0 个或多个由空格分隔的元素,然后是一个闭合的花括号}
。
元素可以是文字或元素列表。
文字是一系列非空白字符。如果元素包含花括号,则必须使用反斜杠 :\{
和\}
. (或者,为简单起见,您可以假设文字中不允许使用花括号)
例子:
"{abc { def ghi } 7 { 1 {2} {3 4} } {5 6} x\{yz \}foo }"
文字内没有花括号:
"{abc { def ghi } 7 { 1 {2} {3 4} } {5 6} xyz foo }"
(这是 Tcl 列表的简化定义。)
我想知道的是:可以使用正则表达式将输入拆分为最外层循环的元素吗?
预期输出:
abc
{ def ghi }
7
{ 1 {2} {3 4} }
{5 6}
x{yz
}foo
真正的问题是:这可以用正则表达式完成吗?
我对 .NET 风格最感兴趣,但会接受任何答案。
我将在答案中发布我自己的假设,看看它是否被验证或销毁。