62,614
社区成员
发帖
与我相关
我的任务
分享
import java.io.*;
import java.util.regex.*;
public class TestMatch {
public static String read(String filename) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(filename));
String s;
StringBuffer sb = new StringBuffer();
while ((s = br.readLine()) != null) {
sb.append(s + "\n");
}
br.close();
return sb.toString();
}
public static void main(String[] args) throws IOException {
String sourceString = read(getFileName(TestMatch.class));//将这个文件用sourceString保存
Pattern p = Pattern.compile(".*?<%(.*?)%>.*?", Pattern.DOTALL);
/*
这个文件作为测试数据 插入一些内容1 <% aaa Random random = new Random(); int num =
random.nextInt(10); out.print(num); request.setAttribute("a",num);
session.setAttribute("a",num);
request.getRequestDispatcher("/form/forword1.jsp").forward(request,response); %>
这个文件作为测试数据 插入一些内容2 <% 这个文件作为测试数据 插入一些内容3 %> 这个文件作为测试数据 插入一些内容4
<% 这个文件作为测试数据 插入一些内容5 %> 这个文件作为测试数据 插入一些内容6
*/
System.out.println("-------------------------------------------------");
Matcher m = p.matcher(sourceString);
while (m.find()) {
System.out.println(m.group(1));
}
}
static <T> String getFileName(Class<T> c) {//获得当前文件的文件路径
return "./src/" + c.getSimpleName() + ".java";// 注释;
}
}
Pattern.compile("<%(.+?)%>",Pattern.DOTALL)
String test = "<%\n"
+ "aaa\n"
+ "Random random = new Random();\n"
+ "int num = random.nextInt(10);\n"
+ "out.print(num);\n"
+ "request.setAttribute(\"a\",num);\n"
+ "session.setAttribute(\"a\",num);\n"
+ "request.getRequestDispatcher(\"/form/forword1.jsp\").forward(request,response);\n"
+ "%>";
Matcher m = Pattern.compile("(?s)<%(.*?)%>").matcher(test);
if (m.find()) {
System.out.println(m.group(1));
}