繁体   English   中英

正则表达式匹配括号内的所有内部括号?

[英]Regex match all inside brackets inside brackets?

我想找到以下值

PROCEDURE test {
        test { }
}

从:

test {
    PROCEDURE test {
        test { }
    }
}

我现在的正则表达式是:

PROCEDURE.*?{.*?(\}){2}

但它不匹配。 有谁知道我怎么能做到这一点?

您需要在第first {last }之间匹配{}对。

你可以尝试这个正则表达式: -

PROCEDURE[^{]*[{](?:[^{]*[{][^}]*[}])*[^}]*[}]

我在字符类中包含花括号,这样你就不需要使用[^{]*来转义它们,你不需要reluctant匹配,因为它会自动停在第一个{

那个正则表达式怎么样:

PROCEDURE\s+\w+\s*\{(?:.*?\{.*?\})*.*?\}

它匹配{}对。

但是,如果过程包含包含大括号的字符串或注释,则它将失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM