我正在研究自己的小脚本语言。现在我一直在阅读脚本阅读器,脚本阅读器读取文件并将其转换为脚本部分(变量,函数,if子句等)。我hava String将脚本文件内容保存在一行中,如下所示:
mega = "";test(){hallo();test = "";if(){p2 = -1;}else{p1 = "";}hi = 0;}
现在我的问题。我想获取if子句和函数(围绕if子句)的括号之间的字符串。我试用了正则表达式:
Matcher m = Pattern.compile("\\(([^)]+)\\)").matcher(example);
while(m.find()) {
System.out.println(m.group(1));
}
然后我得到函数test(){的第一个括号和第一个括起if子句的括号之间的内容。如何在if子句,else子句和函数之间提取字符串?
修改
这是希望我想在提取后离开:
对于If:p2 = -1;
对于其他人:p1 = "";
对于函数arround:
hallo();test = "";if(){p2 = -1;}else{p1 = "";}hi = 0;
编辑2: 我想将它递归到它的无穷无尽(在if子句中是另一个等等。)
答案 0 :(得分:0)
我认为正则表达式不会这样做。你正在寻找对应的大括号对。 让我想起了RegEx match open tags except XHTML self-contained tags。