在实现一个小型脚本解析器时,我遇到了这个代码示例的问题 - 只想选择“if {}”语句之间的部分并包括在内,它很贪婪并选择了包括最后一行在内的所有部分。我想我应该使用的是负前瞻。
if [condition1]
{
task1
setparameters{a}
task2
}
if [condition2]
{
task3
}
setparameters{b}
目前,我有:
if\b\s\[.*\]\s\{(\s|.)*\}
我想这也不像打破另一个“如果”那么简单,因为在那之前可能会发生其他事情。是否可以计算相同数量的左大括号和右大括号?还是有其他一些神奇的方式可以让我选择这些“if”语句之一?