私はこのコードを使用して、HTMLソースコードと必要な情報を取得します。私は<と "!"が返ってくるかどうかだけをテストしていました。最初の行はしかし、これは動作しません!あなたはフォワードスラッシュ/
と混同バックスラッシュ\
をしましたので、だ<と "!"のJava正規表現1行目
import java.io.*;
import java.net.URL;
import java.util.regex.*;
public class url
{
public static BufferedReader read(String url) throws Exception {
return new BufferedReader(
new InputStreamReader(
new URL(url).openStream()));
}
public static void main (String[] args) throws Exception{
BufferedReader reader = read(args[0]);
String line = reader.readLine();
while(line != null) {
System.out.println(line);
line = reader.readLine();
regex("//<//!",line);
}
}
public static void regex(String regex, String check){
Pattern checkregex =Pattern.compile(regex);
Matcher regexMatcher = checkregex.matcher(check);
if(regexMatcher.find()==false)
return;
while(regexMatcher.find()){
if(regexMatcher.group().length() !=0) {
System.out.println(regexMatcher.group().trim());
}
}
}
}
regexMatcher.find()は一致する文字列を消費することを知っていて、if(regexMatcher.find()== false)は 'check'の 'regex' 。そして、もしcheck = "regexregex";最初の発生が消費され、System.out.printlnは2回ではなく1回だけ印刷されます。 – fiction