我的程序未顯示所需的匹配結果。我的文本文件包含以下行:模式不匹配文本文件中的所有短語
- 紅車
- 藍色或紅色
- 紅
- 車
所以如果我搜索:「紅車」。我只得到「紅車」是唯一的結果,但我要的是得到如下結果:
- 紅車
- 紅
- 紅
- 車
因爲這些字符串在文本文件中。藍色或紅色,「或」是合乎邏輯的。所以我想匹配他們中的任何一個,而不是兩個。我究竟做錯了什麼? 任何幫助表示讚賞。我的代碼如下:
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());
}
}
}
你輸入的是什麼正則表達式? –
我輸入的「紅色車」 –
這就是爲什麼你只有「紅色車」回 –