我想找到以下值
PROCEDURE test {
test { }
}
从:
test {
PROCEDURE test {
test { }
}
}
我现在的正则表达式是:
PROCEDURE.*?{.*?(\}){2}
但它不匹配。有谁知道我怎么能做到这一点?
答案 0 :(得分:1)
您需要在{
和}
之间匹配first {
和last }
对。
你可以试试这个正则表达式: -
PROCEDURE[^{]*[{](?:[^{]*[{][^}]*[}])*[^}]*[}]
我在角色类中包含花括号,因此您不需要使用[^{]*
来转义它们,您不需要reluctant
匹配,因为它会自动停止在第一个{
。
答案 1 :(得分:1)
这个正则表达式怎么样:
PROCEDURE\s+\w+\s*\{(?:.*?\{.*?\})*.*?\}
匹配{}。
对但是,如果该过程包含包含大括号的字符串或注释,则它将失败。