我需要匹配輸入文本行中的某些內容。該線路是這樣的:使用Java中的掃描器在一行中匹配令牌的問題
to be/ Σ _ Σ [1pos, 1neg] {0=1, 2=1}
我使用的掃描器類閱讀文本的每一行,我寫了下面的代碼。然而,有些東西不能正常工作,因爲patter「to」與該行不匹配,應該是,因爲「to」包含在行中(我試圖不僅僅匹配行「to」但沒有相匹配):
Scanner scanner = new Scanner(file);
while(scanner.hasNext()) {
String line = scanner.nextLine();
System.out.println("line: " + line);
Pattern p_pos = Pattern.compile("to");
Matcher m_pos = p_pos.matcher(line);
String match = m_pos.group(0);
System.out.println("match: " + match);
boolean b_pos = m_pos.matches();
if(b_pos) {
System.out.println(match);
}
}
輸出:
line: to be/ Σ _ Σ [1pos, 1neg] {0=1, 2=1}
Exception in thread "main" java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Matcher.java:485)
at lady.PhrasesFromFile.readFile(PhrasesFromFile.java:31)
at lady.PhrasesFromFile.main(PhrasesFromFile.java:17)
我有一個問題:我怎麼可以處理線,這樣我存儲從行至第一個的開始一切「/」符號?我在API中找不到任何方法。是否有可能這樣做?我基本上需要連續通過該行,將行的各個部分存儲在不同的變量中,然後使用這些變量的值。由於我不知道第一個「/」符號之前有多少令牌,因此我無法使用next()一定次數。
預先感謝您。