java中匹配下面这些信息
<%
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);
%>就是匹配被<% %>包围的,包括多行情况下,就是上面的也会匹配。单行的会写
<%
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);
%>就是匹配被<% %>包围的,包括多行情况下,就是上面的也会匹配。单行的会写
int i = 0;
List<String> l = new ArrayList<String>();
Pattern p = Pattern.compile(rex);
Matcher m = p.matcher(html);
while (m.find()) { if (m.group(1)!=null){
l.add(m.group(1));
}
i = 1;
}
if (i == 0) {
l.add("");
}
return l;
}
String html="页面内容";
html=html.replace=("\r\n","").repalce("<%","\r\n<%").replace("%>","%>\r\n");
List<String> hh=parser(html,"<%([^<%>]*)%>");
hh.get(0);
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));
}
混分路过..
上面用的这个就很好
顺便问大家一下,我昵称改完了怎么显示不出来呢,有谁知道?
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";// 注释;
}
}输出结果:
(.*?)
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);
这个文件作为测试数据 插入一些内容3
这个文件作为测试数据 插入一些内容5