program A {
int x = 10;
tuple date {
int day;
int month;
int year;
}
}
function B {
int y = 20;
...
}
process C {
more code;
}
我想提取 A、B、C 后面的花括号内的任何内容。我编写了以下代码,但它不起作用。
public class Test {
public static void main(String[] args) throws IOException {
String input = FileUtils.readFileToString(new File("input.txt"));
System.out.println(input);
Pattern p = Pattern.compile("(program|function|process).*?\\{(.*?)\\}\n+(program|function|process)", Pattern.DOTALL);
Matcher m = p.matcher(input);
while(m.find()) {
System.out.println(m.group(1));
}
}
}
谁能说出我做错了什么?
我已经在 Javascript 中测试了正则表达式并且它有效。见这里。