java - 如何从java文件中获取并显示两个字符串(模式)之间的多行

标签 java

我想使用java从文件(包含超过20,000行文本)中的两个所需字符串(模式)之间抓取并显示多行字符串

例如:file.txt(超过 20,000 行文本) 模式1 字符串 我 想 抢 模式2

我想抓取并显示这两个模式(模式1和模式2)之间的文本,在本例中是“我/n想要/n抓取的字符串/n” 我怎样才能做到这一点 我尝试了 Bufferreader、file、string 和其他一些东西,但没有任何效果

抱歉我是菜鸟

最佳答案

你的图案有几行吗?

一个简单的解决方案是存储文件的内容,然后使用正则表达式检查您的模式:

      try {
         BufferedReader reader = new BufferedReader(new FileReader(new File("test.txt")));
         final StringBuilder contents = new StringBuilder();
         while(reader.ready()) {    // read the file content
             contents.append(reader.readLine());
         }   
         reader.close();
         Pattern p = Pattern.compile("PATTERN1(.+)PATTERN2"); // prepare your regex
         Matcher m = p.matcher(contents.toString());
         while(m.find()){ // for each
             String b =  m.group(1);
             System.out.println(b);
         }
      } catch(Exception e) {
         e.printStackTrace();
      }

关于java - 如何从java文件中获取并显示两个字符串(模式)之间的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61508103/

相关文章:

java - 有没有办法获取 JList 中的所有元素?

java - 更新 JFrame 中圆的位置

java - 我给定的代码不打印最后一个输入值。代码有什么问题吗?

java - 返回列表的工厂模式

java - 如何在Java中通过ArrayList创建和使用稀疏数组?

java - Android: NullPointerException: println 需要一条消息;

java - 过滤 getAll 查询结果

java - 转换器影响例程自动生成的代码

java - 由于语法错误表未在数据库中创建

java - 如何将数组元素移位n次?