匹配/图案不打印

时间:2016-06-14 18:07:16

标签: java regex

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 中间会计我"

1 个答案:

答案 0 :(得分:1)

尝试删除" ^"从模式中看看是否会改变结果。

插入符号表示模式仅在输入开始时匹配。由于您一次匹配一行,粗体文本必须位于要匹配的行的开头。

编辑:同样," [a-zAz]"不会起作用。首先,你可能错误地写了字母范围。此外,粗体文本都没有数字后跟所需的单个字母。 (双重编辑:4castle在评论中说道。)

编辑#3:删除" 3"从你的班级名称开始。类型名称不能以Java中的数字开头。