我正在嘗試使程序從.txt文件中識別模式。我希望它記住(「單詞」空間「單詞」),然後當它擊中另一個空間時,它會停下來。在第二個空格後停止 - 正則表達式不起作用
我查了很多模式的例子,但他們都沒有工作。
下面是代碼我有:
private void parsing(String line){
String pattern;
pattern = "(.*[^\\s]+)";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(line);
boolean b = m.matches();
System.out.println(m.group(0));
}
下面是一個輸出:
hsad vova 13/12/1995 16/05/2005 01/09/2017 17/03/2018
hsad vova 13/12/1995 16/05/2005 01/09/2017 17/03/2018
P.S.該程序使用BufferedReader從.txt文件讀取此信息。
這是一個完整的代碼,如果它的需要:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class insuranceSupport {
InputStreamReader streamReader = new InputStreamReader(this.getClass().getResourceAsStream("/database.txt"));
BufferedReader reader = new BufferedReader(streamReader);
String thisLine;
public void getLine(){
ArrayList<String> list = new ArrayList<String>();
try {
while ((thisLine = reader.readLine()) != null){
list.add(thisLine);
System.out.println(thisLine);
parsing(thisLine);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void parsing(String line){
String pattern;
pattern = "(.*[^\\s]+)";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(line);
boolean b = m.matches();
System.out.println(m.group(0));
}
}
和主:
public class insuranceMain {
public static void main(String args[]){
insuranceSupport inc = new insuranceSupport();
inc.getLine();
}
}
對不起,這麼多的信息。我一直在研究這個問題很久,找不到解決辦法;只是想確保其他人能夠解決這個問題。
感謝您的努力和時間!
什麼內容輸出什麼,你想要一個更簡單的方法和? – alijandro
「hsad vova 13/12/1995 16/05/2005 01/09/2017 17/03/2018」是文件database.txt的內容(它只是一行)。我想寫一個只保存「hsad vova」的模式@alijandro –