私のプログラムは、望ましいマッチング結果を表示していません。私のテキストファイルには次の行が含まれています。
- 赤い車
- 青または赤
- 赤
- 車両
だから私が検索した場合:「赤い車」。唯一の結果として「赤い車」しか得られませんが、私が欲しいのは次の結果を得ることです。
- 赤い車
- 赤
- 赤
- 車両
これらの文字列はテキストファイルにあるためです。青または赤、「または」は論理的です。ですから、両方ではなく、どちらか一方に一致させたいのです。私は何が間違っているのですか?どんな助けでも大歓迎です。私のコードは次のとおりです。
public static void main(String[] args) {
// TODO code application logic here
//String key;
String strLine;
try{
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream("C:\\textfile.txt");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
Scanner input = new Scanner (System.in);
System.out.print("Enter Your Search: ");
String key = input.nextLine();
while ((strLine = br.readLine()) != null) {
Pattern p = Pattern.compile(key); // regex pattern to search for
Matcher m = p.matcher(strLine); // src of text to search
boolean b = false;
while(b = m.find()) {
System.out.println( m.start() + " " + m.group()); // returns index and match
// Print the content on the console
}
}
//Close the input stream
in.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}