[英]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.