下面这段<div id=\"listheadline\">(.*?)<div class=\"mainNextPage\"> 我匹配 <div id=\"listheadline\"> 或者<div class=\"mainNextPage\">都可以匹配到但匹配<div id=\"listheadline\">(.*?)<div class=\"mainNextPage\"> 就匹配不到了怎么回事呢
调试欢乐多
这是我的源代码
URL u = new URL(url);
URLConnection conn = u.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
while((line = br.readLine())!=null){
sb.append(line);
}
br.close();
line = sb.toString();用上面的代码读出的 line 用 <div id=\"listheadline\">(.*?) <div class=\"mainNextPage\"> 能匹配到但用 下面的代码读出的 line 用 <div id=\"listheadline\">(.*?) <div class=\"mainNextPage\"> 就匹配不到2个程序读出来的代码完全一样,不要怀疑这点,只是格式 不一样
URL u = new URL("");
URLConnection conn = u.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
char[] data = new char[1024];
int n;
while ((n=br.read(data)) !=-1) {
sb.append(new String(data,0,n));
}
br.close();
line = sb.toString();
String RegxCode = "<div id=\"listheadline\">(.*?)<div class=\"mainNextPage\">";
Pattern p = Pattern.compile(RegxCode);
Matcher m = p.matcher(line);
if(m.find()) {
System.out.println("ok");
}
String RegxCode = " <div id=\"listheadline\">(.*?) <div class=\"mainNextPage\">";
中的" <div前面多个空格?
Pattern p = Pattern.compile(RegxCode);
Matcher m = p.matcher(line);
if(m.find()) {
System.out.println("ok");
System.out.println(m.group());
}这样的话能匹配到,但也很奇怪输出的结果:
ok
<div id="listheadline">(.*?) 好像没什么作用
Pattern.DOTALL 这是什么意思