如果正则表达式模式与Java匹配,我想提取文本文件的下一行数据。我能够检测并匹配文本文件中的模式数据,但无法打印下一行模式数据。
测试数据:
*** Explorer
GenV Deno Znet
用于匹配资源管理器的正则表达式
[*\\+]+[\\s+]+[Explorer]+[:]
如果找到*** Explorer模式,请帮助我了解如何获取下一行。
答案 0 :(得分:0)
您可以将此正则表达式与捕获组一起用于搜索模式后的下一行:
[*]+\s+Explorer\R(.*)
在第1组
中捕获下一行正则表达式分手:
[*]+\s+Explorer
- 符合您的搜索模式\R
- 匹配任何换行符(.*)
- 匹配并捕获第1组在Java中使用:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
final String regex = "[*]+\\s+Explorer\\R(.*)";
final String input = "*** Explorer\nGenV Deno Znet";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println("match: " + matcher.group(1));
}
答案 1 :(得分:0)
答案 2 :(得分:0)
嗯,首先,正则表达式不会匹配" ***资源管理器"
它将匹配" ***资源管理器:"
如果这是java,你不能阅读下一行吗?
while ((lineText = lineReader.readLine()) != null) {
hasMatch = lineText.matches(regex);
if(hasMatch) {
lineText = lineReader.readLine();
System.out.println(lineText);
}
}
适合我。