使用正则表达式将代码分解为范围 - java

时间:2016-06-05 18:20:59

标签: java regex string compilation

作为硬件分配我必须创建一个简单的程序来验证一些simpleifeid java代码是否有效。 我想使用正则表达式(假设这是正确的工具)将代码段分成不同的范围。

基本上,给定一个字符串,我想要它的所有部分:

一些字符(){ 一些字符 }

例如,对于此代码:

void foo() {
char a = 'a';
if(3=2){
  double d;
 }
return;
}

我想获得这种结构的2个单元格数组:     cell 0:void foo(){char a ='a'; if(3 = 2){double d;} return;}     单元格1:if(3 = 2){double d;}

在java中这样做的方法是什么? 我试了这个没有成功:

Pattern blocks = Pattern.compile("[[^\\n].*\\{.*\\}]*");
String[] sepblock = (str+str+str).split("[^\\n].*\\{.*\\}");
Matcher match = blocks.matcher(str+str+str);
while (match.find()) {          System.out.println((str+str+str).substring(match.start(),match.end()));
    }
输出是:

void foo() {

char a = 'a';

return;

}


void foo() {

char a = 'a';

return;

}


void foo() {

char a = 'a';

return;

}

想要的输出是一个3单元格数组,其中每个单元格包含一个字符串,它是foo的一个。

0 个答案:

没有答案