01.
import
java.io.BufferedReader;
02.
import
java.io.InputStream;
03.
import
java.io.InputStreamReader;
04.
import
java.io.PrintWriter;
05.
import
java.net.HttpURLConnection;
06.
import
java.net.URL;
07.
import
java.util.regex.Matcher;
08.
import
java.util.regex.Pattern;
09.
10.
11.
public
class
HttpGetAndRegex {
12.
13.
14.
15.
16.
public
static
void
main(String[] args) {
17.
18.
try
{
19.
URL url =
new
URL(
"http://gigazine.net/"
);
20.
21.
HttpURLConnection http = (HttpURLConnection)url.openConnection();
22.
http.setRequestMethod(
"GET"
);
23.
24.
http.connect();
25.
26.
27.
InputStream i_stream = http.getInputStream();
28.
29.
30.
31.
InputStreamReader i_stream_reader =
new
InputStreamReader(i_stream,
"UTF-8"
);
32.
33.
34.
BufferedReader buffer_reader =
new
BufferedReader(i_stream_reader);
35.
36.
String result_string =
""
;
37.
String line_buffer =
null
;
38.
39.
while
(
null
!= (line_buffer = buffer_reader.readLine() ) ) {
40.
result_string += line_buffer;
41.
}
42.
43.
44.
buffer_reader.close();
45.
i_stream_reader.close();
46.
i_stream.close();
47.
http.disconnect();
48.
49.
50.
51.
52.
53.
PrintWriter pw =
new
PrintWriter(
".\\result.txt"
,
"SHIFT_JIS"
);
54.
55.
pw.println(
"SHIFT_JIS で書き込んでいます"
);
56.
57.
58.
59.
60.
String regex =
"(https?://.+?)[\"']?[;)>\\s]"
;
61.
Pattern pattern = Pattern.compile(regex);
62.
63.
Matcher matcher = pattern.matcher(result_string);
64.
while
(matcher.find()){
65.
System.out.println(matcher.group(
1
));
66.
pw.println( matcher.group(
1
) );
67.
}
68.
69.
pw.flush();
70.
pw.close();
71.
72.
}
73.
catch
( Exception e ) {
74.
e.printStackTrace();
75.
}
76.
77.
78.
}
79.
80.
}