【发布时间】:2019-05-18 13:45:52
【问题描述】:
我正在尝试使用正则表达式删除文本文件中的特定行,但我收到了非法状态异常。我最近试图习惯正则表达式并尝试使用 match.matches();但该解决方案对我不起作用。对我做错的任何建议
try {
BufferedReader br = new BufferedReader(new FileReader("TestFile.txt"));
//System.out.println(br.toString());
ArrayList<String> list = new ArrayList<String>();
String line= br.readLine() ;
while (br.readLine() != null ) {
//System.out.println(line);
//System.out.println("test1"); {
Pattern regex = Pattern.compile("[^\\s\"]+|\"[^\"]*\"");
Matcher regexMatcher = regex.matcher(line);
String match = regexMatcher.group();// here is where the illegalstateexception occurs
match = removeLeadingChar(match, "\"");
match = removeLeadingChar(match, "\"");
list.add(match);
// }
// br.close();
System.out.println(br);
线程“主”java.lang.IllegalStateException 中的异常:未找到匹配项 在 java.base/java.util.regex.Matcher.group(未知来源) 在 java.base/java.util.regex.Matcher.group(未知来源)
【问题讨论】:
-
没有匹配结果。在使用
group方法之前,您应该调用find方法来检查结果。TestFile.txt文件的内容是什么? -
我是正则表达式的新手,如果我使用 Matcher,find 方法的目的是什么?文本文件的内容是不需要的元数据2019-05-10T06:00: 00+00:00 pspapi-ctwbcp4a #Version: 1.0
标签: java illegalstateexception