作为硬件分配我必须创建一个简单的程序来验证一些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的一个。