通过忽略其他方括号,在两个开方括号和闭方括号之间查找文本的正则表达式

2024-10-01 00:17:57 发布

您现在位置:Python中文网/ 问答频道 /正文

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的右括号被排除在外。只考虑它遇到的第一个}。你知道吗


Tags: tokeyrunforifvarexitbe
2条回答

正则表达式不能处理嵌套的递归结构。对于这些,你需要更强大的东西。你知道吗

在这些简单的“我只想提取一个子串”的情况下,我经常很幸运地使用^{}及其extract_bracketed函数。你知道吗

对于需要实际递归解析器的更大的情况,我为此构建了^{}。你知道吗

这两个都可以。你知道吗

你也可以试试这个:

/^(\s*)while.*{[^]*\1}/igm

你可以试试here

相关问题 更多 >