import java.io.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class 3HourLabHours {
public static void main(String[] args) throws FileNotFoundException {
//create string variable for filepath
String fileName = "C:\\Users\\Frank\\Downloads\\Courses.txt";
String line = null;
try {
FileReader fileReader = new FileReader(fileName);
//scans file into bufferedReader
BufferedReader bufferedReader = new BufferedReader(fileReader);
//goes through each line in text file
while ((line = bufferedReader.readLine()) != null) {
//creates pattern to match
Pattern p = Pattern.compile("((^[a-zA-Z]+\\s\\d+[a-zAz]\\s\\d\\s\\d\\s)(\\d))");
//matches pattern to line in text
Matcher m = p.matcher(line);
if (m.find()) {
System.out.print(m);
}
}
}catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
我想知道为什么我创建的模式不匹配文本中的任何行。粗体是应该匹配和打印的。
文本文件示例:
"会计 ACG 2021 3 3 0 财务会计原则 •先决条件:安置的评估分数 MAT 0024C或更高的数学或最低等级 在MAT 0012C或APA 1111或MTB 1103中的C. 会计概念,原则,程序和基础理论 适用于会计,财务报表,会计等性质 周期,流动资产,厂房和设备,长期投资, 无形资产,工资单,流动负债,长期债务和 所有者的权益,包括独资企业的会计, 伙伴关系和公司。 (特殊费用:30.00美元) ACG 2071 3 3 0 管理会计原则 •先决条件:ACG 2021 按成本核算业务信息要求 会计概念和关系,现金流量表, 财务报表分析,成本 - 利润分析,差异 分析,预算,定价决策,资本支出决策, 和决策的管理会计分析。 (特殊费用:30.00美元) ACG 2100 3 3 0 中间会计我"
答案 0 :(得分:1)
尝试删除" ^"从模式中看看是否会改变结果。
插入符号表示模式仅在输入开始时匹配。由于您一次匹配一行,粗体文本必须位于要匹配的行的开头。
编辑:同样," [a-zAz]"不会起作用。首先,你可能错误地写了字母范围。此外,粗体文本都没有数字后跟所需的单个字母。 (双重编辑:4castle在评论中说道。)
编辑#3:删除" 3"从你的班级名称开始。类型名称不能以Java中的数字开头。