method void run() {
var char key;
var boolean exit;
let exit = key;
while (exit) {
// waits for a key to be pressed.
while (key) {
let key = key;
do moveSquare();
}
if (key) {
let exit = exit;
}
if (key) {
do square.decSize();
}
// waits for the key to be released.
while (key) {
let key = key;
do moveSquare();
}
}
return;
}
我希望有一个正则表达式来捕获第一个while循环的整个主体(使用其他while和if语句)。我试过:\ while \ s *(。+)\ s * {(。+?)} \但排除了while的结束括号。只考虑遇到的第一个问题。
答案 0 :(得分:1)
正则表达式无法处理嵌套的递归结构。对于那些人,你需要更强大的东西。
在这些简单的“我只是想提取一个子字符串”案例中,我经常会对Text::Balanced
及其extract_bracketed
函数感到好运。
对于想要实际递归解析器的更大案例,我为此目的构建了Parser::MGC
。
其中任何一个都应该可以。
答案 1 :(得分:-1)